Asp.net HttpContext.Current在传输或重写后为空

Asp.net HttpContext.Current在传输或重写后为空,asp.net,Asp.net,我正试图重写一个url,如下所示: Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs) If [some condition] Then Dim sPath = [fix up path] Context.RewritePath(sPath) End If End Sub 新路径被正确调用,但当它被调用时,HttpContext.Current为N

我正试图重写一个url,如下所示:

Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
    If [some condition] Then
        Dim sPath = [fix up path]

        Context.RewritePath(sPath)
    End If
End Sub
新路径被正确调用,但当它被调用时,
HttpContext.Current
Nothing
,这会破坏我的代码
Server.Transfer
Server.TransferRequest
有相同的问题。为什么会这样,我可以做些什么来重写请求并保留HttpContext


更新:使用IIS重写模块也会发生同样的情况。

结果表明,我在重写后测试的特定代码是在异步处理程序的回调中运行的,因此是在后台线程中运行的,该线程从来没有当前的HttpContext,在重写之前也是如此。在这种情况下,其他一些事情让我第一次注意到了一个无关的bug

但如果它对其他人有帮助,那么外卖是:

HttpContext.Current
在后台线程中不起作用