UnobservedTaskException - Where did the task come from

若如初见. 提交于 2019-12-07 13:34:42

问题


In my MVC application, I sometimes get an exception like:

System.Net.WebException: The request was aborted: The request was canceled.
   at System.Net.HttpWebRequest.BeginGetRequestStream(AsyncCallback callback, Object state)
   at System.Net.Http.HttpClientHandler.StartGettingRequestStream(RequestState state)
   at System.Net.Http.HttpClientHandler.<>c__DisplayClass4.<PrepareAndStartContentUpload>b__0(Task task)
   at System.Threading.Tasks.Task.Execute()
   --- End of inner exception stack trace ---

EDIT Here's another kind I'm seeing:

System.Exception: Unhandled Task Error ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at System.Web.HttpApplication.PipelineStepManager.ResumeSteps(Exception error)
   at System.Web.HttpApplication.ResumeStepsFromThreadPoolThread(Exception error)
   at System.Web.HttpApplication.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult ar)
   at System.Threading.Tasks.Task.Execute()
   --- End of inner exception stack trace ---

Here's what I see in the event log, but it's not exactly correlated in time or count.

A fatal alert was generated and sent to the remote endpoint. This may result in termination of the connection. The TLS protocol defined fatal error code is 40. The Windows SChannel error state is 1205.

An TLS 1.2 connection request was received from a remote client application, but none of the cipher suites supported by the client application are supported by the server. The SSL connection request has failed.

/EDIT

Is there a way to identify the source/location of the exception or get any other information about where the exception came from?

EDIT 2 Here's another one I'm seeing. They're all related to OnAsyncHandlerCompletion, but I'm not sure what the source is.

System.Exception: Unhandled Task Error ---> System.NullReferenceException: Object reference not set to an instance of an object.
at System.Web.HttpApplication.get_CurrentModuleContainer()
at System.Web.HttpApplication.PipelineStepManager.ResumeSteps(Exception error)
at System.Web.HttpApplication.ResumeStepsFromThreadPoolThread(Exception error)
at System.Web.HttpApplication.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult ar)
at System.Threading.Tasks.Task.Execute()
--- End of inner exception stack trace ---

/EDIT 2


回答1:


You can subscribe to the TaskScheduler.UnobservedTaskException event, and perhaps get more information about the exception.



来源:https://stackoverflow.com/questions/33698395/unobservedtaskexception-where-did-the-task-come-from

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!