- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试访问我的 ApiController
派生类中的 Request
属性。
由于某些原因,Request
在 ExecuteAsync
方法中为 null。我看过其他问题,所以在你提问之前:
ExecuteAsync
方法之前,我的请求通过委托(delegate)处理程序,在委托(delegate)处理程序中,我的请求对象存在(我什至添加了一些属性没有任何问题)。return await base.SendAsync(request, cancellationToken);
并且request
存在.HttpContext.Current.Request
不为空并且可以毫无问题地访问。RequestContext
不为空并且可以毫无问题地访问。Request
为空。为什么会这样?我使用的是 Web API 2.2(和 MVC 5,如果相关的话)。
最佳答案
这可能是因为您在使用 async/await 时试图访问 HttpContext。
所以,你有两个选择:
您可以在此处阅读更多信息 - Using HttpContext Safely After Async in ASP.NET MVC Applications .
为了更好地了解幕后发生的事情,我建议:
在非常高的层次上:在同步服务器实现中,整个请求由同一个线程处理,执行上下文使用 TLS(线程本地存储)存储,这意味着 HttpContext 在您的代码中的任何地方都可用。
在异步服务器实现(异步/等待)中,请求可能由多个线程处理,并且需要在这些线程之间传递执行上下文。
关于c# - Web API 请求在 ApiController 的 ExecuteAsync 方法中为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42782141/
我的 RestSharp 实现存在以下问题。如何让我的应用程序在继续之前等待 ExecuteAsync() 的响应? 我尝试了不同的解决方案: 首先(该方法不等待 ExecuteAsync 响应):
我熟悉如何在我的 Google Drive 中创建文件夹,但我正在考虑使用异步方法来执行此操作。但是,在这样做时,我不确定如何获取我明确添加到我希望返回的字段中的字段。 我的代码如下: private
我在 Asp.Net Core Web API 中实现了一个 Microsoft.Extensions.Hosting.BackgroundService,它在 ExecuteAsync 内部有一个阻
对于使用 MSAL.NET v4 (nuget Microsoft.Identity.Client v4.3.0) 中的应用程序(客户端 ID 和 secret 无用户上下文)使用承载 token 进
所以,这一直有效(并且在模拟器中继续正常工作)。 当我在 Azure 中启动经典云服务时,出现以下错误。 ExecuteAsync() 位于 Web 角色中,位于 Results/ChallengeR
我对 AcquireTokenWithDeviceCode 的调用以及对返回对象使用 ExecuteAsync() 的调用永远不会返回。 deviceCodeResultCallback 中的断点按预
这是我的原始方法示例 public void insertIntoDb(SampleObject sample){ ------------------------------------
我正在尝试使用 ExecuteAsync 发出异步获取请求,但它从不回应。令我困惑的是 ExecuteAsync有效,两种同步方法也是如此 Execute和 Execute . 这是我的代码: var
我正在调用 request.executeAnsyc 以用信息填充我的数组并显示在 ListView 上。遗憾的是,在 request.executeAnsyc 完成之前调用了数组。所以我的 Frag
我正在尝试将 10000 条记录插入 Azure 表存储中。我正在使用 ExecuteAsync() 来实现它,但不知何故插入了大约 7500 条记录,其余记录丢失了。我故意不使用 await 关键字
所以我有一个 dotnet 核心工作进程,我想在某些情况下关闭工作进程。 protected override async Task ExecuteAsync(CancellationToken st
我有一个名为 Worker 的 BackgroundService,我重写了 ExecuteAsync 方法以每 10 秒运行一次。有时,我跑的东西会持续很长时间。在这种情况下,我想终止正在运行的程序
我在执行包装策略时遇到上述异常,包括:重试、断路器和隔板。 我有以下政策: var sharedBulkhead = Policy.BulkheadAsync( maxPara
如果根据 Protractor 规范,我在 browser.executeAsyncScript 中执行脚本,我应该如何告知脚本确实失败了?考虑以下对 browser.executeAsyncScri
尝试使用 Nsubstitute 为 RestClient(来自 RestSharp)模拟 ExecuteAsync 方法时遇到了困难。我看过一个使用 Moq 的示例(此处:Mocking Rests
我在异步方法中返回变量时遇到问题。我能够获取要执行的代码,但无法获取返回电子邮件地址的代码。 public async Task GetSignInName (string id) {
我正在尝试通过调用 session.executeAsync() 而不是 session.execute() 来加速我们的代码写入数据库。 我们有数据库连接可能断开的用例,目前之前的 execute(
我是 Javascript 的新手,正在尝试编写一个 firefox 附加组件。 我正在尝试将从 SQL 查询返回的数据传递/提取到调用函数。好像不行。 我搜索了有关变量范围的信息,查看了我可以在该站
我正在使用 datastax java 驱动程序 3.1.0 连接到 cassandra 集群,我的 cassandra 集群版本是 2.0.10。我正在以 QUORUM 一致性异步编写。 pri
在我的 api Controller 操作方法中。我正在为获取请求使用内容协商。代码是: IContentNegotiator negotiator = this.Configuration.Serv
我是一名优秀的程序员,十分优秀!