C# Task问题,错误异常已贴出

小宁_z 2017-09-13 10:59:27
错误提示如:

发生了未经处理的异常,已终止进程。 Application ID: /LM/W3SVC/1/ROOT Process ID: 4040 Exception: System.NullReferenceException Message: 未将对象引用设置到对象的实例。 StackTrace: 在 System.Web.ThreadContext.AssociateWithCurrentThread(Boolean setImpersonationContext) 在 System.Web.HttpApplication.OnThreadEnterPrivate(Boolean setImpersonationContext) 在 System.Web.LegacyAspNetSynchronizationContext.CallCallbackPossiblyUnderLock(SendOrPostCallback callback, Object state) 在 System.Web.LegacyAspNetSynchronizationContext.CallCallback(SendOrPostCallback callback, Object state) 在 System.Threading.Tasks.AwaitTaskContinuation.RunCallback(ContextCallback callback, Object state, Task& currentTask) --- End of stack trace from previous location where exception was thrown --- 在 System.Threading.Tasks.AwaitTaskContinuation.<ThrowAsyncIfNecessary>b__1(Object s) 在 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 在 System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() 在 System.Threading.ThreadPoolWorkQueue.Dispatch()


应用程序: w3wp.exe Framework 版本: v4.0.30319 说明: 由于未经处理的异常,进程终止。异常信息: System.NullReferenceException 堆栈: 在 System.Threading.Tasks.AwaitTaskContinuation.<ThrowAsyncIfNecessary>b__1(System.Object) 在 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) 在 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) 在 System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() 在 System.Threading.ThreadPoolWorkQueue.Dispatch()

如上。这是我把网站部署在IIS 后,频繁报的错误(服务器应用程序事件查看看到的)
我觉是我代码用的TASK的问题。
我是这么用的:
private async Task Update(List<TheistEntity> list)
{
await Task.Factory.StartNew(() => {
//do something
)};
}
调用: Update(list).ConfigureAwait(false);

各位大佬看看什么问题,这个错误导致IIS的应用程序池老是自动停了. ASP.NET MVC4
...全文
682 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
小宁_z 2017-09-17
  • 打赏
  • 举报
回复
确实是线程的问题,不过不是我调用我贴出来的task的问题,是EF 的异步保存的问题,我把它EF的异步改成同步就好了。 thanks all.
MYsce 2017-09-14
  • 打赏
  • 举报
回复
未将对象引用设置到对象的实例
正怒月神 2017-09-13
  • 打赏
  • 举报
回复
同1#,未将对象引用设置到对象的实例应该是do something中的问题
exception92 2017-09-13
  • 打赏
  • 举报
回复
未将对象引用设置到对象的实例 -》 我觉得不是,而是do something 中的异常。 PS:个人观点,欢迎指正。
  • 打赏
  • 举报
回复
同上面几楼一样,是异步方法里面执行的实际代码异常了,导致线程异常 另外你这个可以在iis里错误处理部分将默认的 5次错误就停止iis服务设置为false,这个默认是设置为true的 这样就算你这个异常了,也不会导致iis停止服务
ilikeff8 2017-09-13
  • 打赏
  • 举报
回复
要么list =null了,内部还在调用list.xxx,要么就是update(list)返回null,而你还在null.configureawait

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧