我有一个Asp .Net应用程序,我正在使用.net 4.5 RC的新async / await范例。
我正在使用新的基于任务的异步http处理程序HttpTaskAsyncHandler
来处理http请求。在我的代码中,我正在做一些I / O流文件到客户端。
NullPointerException
:
System.Web.dll!System.Web.HttpApplication.CurrentModuleContainer.get()+ 0x1e bytes System.Web.dll!System.Web.HttpApplication.PipelineStepManager.ResumeSteps(System.Exception error)+ 0xb7 bytes
System.Web.dll!System.Web.HttpApplication.CallHandlerExecutionStep.OnAsyncHandlerCompletion(System.IAsyncResult ar)+ 0x1f3 bytes
mscorlib.dll!System.Threading.Tasks.Task.Execute()+ 0x6e bytes mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext,System.Threading.ContextCallback callback,object state,bool preserveSyncCtx)+ 0x285 bytes mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext,System.Threading.ContextCallback callback,object state,bool preserveSyncCtx)+ 0x9 bytes
mscorlib.dll!System.Threading.Tasks.Task.ExecuteWithThreadLocal(ref System.Threading.Tasks.Task currentTaskSlot)+ 0x1c5 bytes
mscorlib.dll!System.Threading.Tasks.Task.ExecuteEntry(bool bPreventDoubleExecution)+ 0xb0 bytes
mscorlib.dll!System.Threading.ThreadPoolWorkQueue.Dispatch()+ 0x1ea bytes
[原产于管理过渡]
[Appdomain Transition]
[原生于管理过渡]
这似乎发生在我的代码已经返回响应之后。
当发生这种情况时,下一个请求永远不会被处理,但是后一个请求恢复正常。
这种行为可能是什么原因?我看了一下CurrentModuleContainer.Get方法的源代码,似乎唯一可以抛出空指针异常的是Http上下文。
答案 0 :(得分:0)
异常可能来自许多不同的原因,但可以猜测您正在尝试访问处理程序中的当前HttpContext,在异步结束函数期间可能为null。