async await Task null reference exception
我正在维护的 Web 表单项目中收到 NullReferenceExceptions。问题是这个异常没有堆栈跟踪,因为我的代码都没有导致异常。
复制到剪贴板的异常详细信息提供零帮助:
Message: An unhandled exception of type 'System.NullReferenceException' occurred in mscorlib.dll
Additional information: Object reference not set to an instance of an object.
当我查看非用户代码堆栈跟踪时,我看到以下内容(全部在 mscorlib 中):
错误随机且不一致地发生,无论是通过加载页面还是通过回发。在我添加
为了帮助进行故障排除,让我重申一下,我正在使用 .NET 4.6 编译的 WebForms 站点中运行它(如果您要告诉我我的问题是我需要升级到 MVC,请保存您的击键不要说出来)。虽然 HttpClient 将所有内容公开为 Task<>,但我通过以下方式同步调用它们:
MyObject myResult = myResultTask.Result; // no await
提前致谢!
我刚遇到这个问题,并想建议这个作为答案。
在你的 web.config 中确保你有以下内容:
1 2 3 | <system.Web> <httpRuntime targetFramework="4.5" /> </system.Web> |
和
1 | </appSettings> |
在此处查看更多信息:
https://blogs.msdn.microsoft.com/webdev/2012/11/19/all-about-httpruntime-targetframework/
如果你不这样做,它似乎只是随机崩溃。我是向后兼容性的忠实拥护者,但如果您不选择新方式,它就会崩溃。
(在 Stephen Cleary 的评论中建议)