在MVC Web API生命周期的什么时候做了" MS_HttpContext#34;得到了?

时间:2014-08-25 16:14:35

标签: c# asp.net-mvc asp.net-web-api asp.net-mvc-5

我们有一个Web API 5.0.0.0应用程序,我们有以下代码:

public class LoggingHandler : DelegatingHandler
{
    protected async override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request,
        CancellationToken cancellationToken)
    {
        var context = request.Properties["MS_HttpContext"] as HttpContextBase;

        // Throws null reference exception in some environments
        var headers = context.Response.Headers;

        ... some more random code ...
    }
}

这适用于我们的大多数环境,但在一个特定环境中, context 变量始终为null。

在我看来,存在竞争条件,并且在某些环境中 request.Properties [“MS_HttpContext”] 在调用此处理程序方法之前被设置,而在其他环境中它是尚未设定。

有人能解释有关何时设置 MS_HttpContext 请求属性与调用DelegatingHandler的 SendAsync 方法时的生命周期事件?

0 个答案:

没有答案