Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 防止未处理的异常拆下Azure worker角色_.net_Azure_Azure Worker Roles - Fatal编程技术网

.net 防止未处理的异常拆下Azure worker角色

.net 防止未处理的异常拆下Azure worker角色,.net,azure,azure-worker-roles,.net,Azure,Azure Worker Roles,我们有一个Azure worker角色,它运行一个高度异步的工作负载,在IO线程上有很多完成操作等等 有时,在我们不拥有的异步回调上会发生未处理的异常。这反过来会导致角色失败 在非Azure ASP.NET应用程序中,我们可以通过在aspnet.config中启用传统的未处理异常策略来避免这种情况,如下所示: <configuration> <runtime> <legacyUnhandledExceptionPolicy enabled="1" /

我们有一个Azure worker角色,它运行一个高度异步的工作负载,在IO线程上有很多完成操作等等

有时,在我们不拥有的异步回调上会发生未处理的异常。这反过来会导致角色失败

在非Azure ASP.NET应用程序中,我们可以通过在aspnet.config中启用传统的未处理异常策略来避免这种情况,如下所示:

<configuration> 
  <runtime> 
    <legacyUnhandledExceptionPolicy enabled="1" /> 
  <runtime>
<configuration>

是否有一种方法可以对Azure worker角色执行相同的操作?我们试图将其放在角色项目的app.config中,但没有成功(因为我们可能不得不以某种方式将其放在WaWorkerHost.exe.config中)


我们知道
AppDomain.CurrentDomain.UnhandledException
Application.SetUnhandledExceptionMode
,但这些并不能解决我们的问题。

请阅读您的线程,因为我对webrole也有同样的体验。现在,我添加了您的代码片段,并检查是否会再次遇到此错误。对AppDomain类进行了一些研究:。事实上,我正在搜索未处理的异常策略,但没有找到它。但我发现事件“未处理异常”

但这是你写的,行不通。因为这以后也会影响到我-我将以azure worker角色运行第三方开源组件-我做了一些研究

我将尝试为第三方代码创建一个新的AppDomain-如果发生异常,它将崩溃/卸载新创建的AppDomain,而不是运行代码的当前AppDomain。另一个解决方案可能是创建一个新流程,我认为这需要更多的工作

编辑:
我重温了这个主题:在版本2.0中,它被引入来在一个线程(不是主线程)在类库中遇到错误时关闭应用程序域。看起来,即使是一个单独的应用程序域也无济于事。据我所知,这种设计应该有助于在库级别通过捕获异常来调试库中隐藏的错误,并适当地处理它们。但是什么让我恼火呢?如果我们使用我们无法控制的第三方类库会发生什么?然后,如果我们的问题对供应商来说太小,我们似乎无法及时解决。

Marc,如果可能的话,我正在寻找一个更好的答案,一个不需要管理appdomains(当appdomain被拆除时,我们不希望失去appdomain状态)或创建自己的流程的答案。仍然在寻找答案!请插话。