我正在尝试设置Windows 2016实例,以便在.Net进程以未处理的异常退出时自动创建崩溃转储。我试过以下几种方法:
我尝试以一种会产生异常的方式运行我的应用程序。我所要做的就是在同一个配置中启动两次,第二个实例在套接字绑定异常上崩溃。但是,在上述任何情况下,崩溃都不会生成转储文件。在Windows 2016上,我是否需要做一些特殊的事情,或者我需要对我的.Net应用程序做一些特殊的事情来让它在未处理的异常上触发转储?
发布于 2019-08-09 16:11:56
我找到了原因:我们正在使用TopShelf来托管我们的进程。默认情况下,TopShelf处理不明确的异常和退出都是干净的。
对于任何随后来的人,请注意,TopShelf有一个从去年末开始就没有文档的特性来禁用此行为:
x.UnhandledExceptionPolicy = Topshelf.Runtime.UnhandledExceptionPolicyCode.TakeNoAction;
在服务配置中将执行此操作。有了这段代码,我就能得到一个崩溃转储。
https://stackoverflow.com/questions/57431368
复制相似问题