我目前正在Visual Studio 2017中的一个解决方案中运行,该解决方案在IIS 10.0.14393中运行,该解决方案的主要项目是.net 4.6框架中的C#,但它也引用了托管和本机C ++项目。
我需要捕获C#代码中本机C ++代码引发的内存访问冲突异常,为此,如果我在特定方法中使用HandleProcessCorruptedStateExceptions属性,则它可以工作,但是我需要以全局方式对整个项目进行操作。为此,文档说在web.config中使用元素足以捕获C#中的那些异常。我在web.config中添加了元素:
<runtime>
<legacyCorruptedStateExceptionsPolicy enabled="true" />
</runtime>
但这并没有改变解决方案中的任何行为,我尝试了多种添加方法,但是结果却是相同的。 我在不同的论坛上进行了调查,看看是否有人遇到相同的问题,而我发现另一个人遇到了相同的问题,但是没有答案...
关于如何使用它的任何线索?或任何其他方法来全局捕获托管代码中的本机异常?
谢谢!
答案 0 :(得分:0)
最后,我问到的是,如果legacyCorruptedStateExceptionsPolicy不在applicationHost.config中,则web.config不支持它。
因此,另一种使该全局性工作对我有用的替代方法是将设置添加到machine.config。
所以只需添加:
<runtime>
<legacyCorruptedStateExceptionsPolicy enabled="true" />
</runtime>
到 machine.config 文件 (对于32位%windir%\ Microsoft.NET \ Framework [version] \ config \ machine.config 或64位%windir%\ Microsoft.NET \ Framework64 [version] \ config \ machine.config )