使用异步操作时,MVC 5 razor视图中的运行时错误会挂起IIS

时间:2015-07-01 03:32:37

标签: razor asynchronous model-view-controller hang

我注意到如果在从异步控制器操作(即Task<ActionResult>)提供的Razor View中遇到运行时错误,则异常会挂起Web应用程序。我只能通过重新启动IIS来清除它。这里令人烦恼的是,因为异步IO中没有发生错误(即,在对数据库的API调用中),但是在Razor View中,该异常似乎被线程吞没了。我只能通过从API调用和控制器中删除异步来诊断View是原因,此时View上的运行时错误表现出来。

我的问题是,有没有办法通过异步控制器操作来避免这些死锁情况?我尝试将同步上下文设置添加到web.config,以及将ConfigureAwait(false)附加到API异步调用,但无济于事。似乎错误是在View上生成的,而不是在API调用中生成,这些措施对于处理异常来说为时尚早。

我正在使用在.NET 4.0.30319上运行的MVC 5.2.3

0 个答案:

没有答案