Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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 使用.config文件时,如何在生产环境中记录托管调试助手异常?_.net_Debugging_.net 4.6 - Fatal编程技术网

.net 使用.config文件时,如何在生产环境中记录托管调试助手异常?

.net 使用.config文件时,如何在生产环境中记录托管调试助手异常?,.net,debugging,.net-4.6,.net,Debugging,.net 4.6,调试应用程序时,我当前遇到ContextSwitchDeadlock。 但是,我想通过我们已经发布的应用程序来检测这一点 我已经计算出: 如何创建一个列出contextSwitchDeadlock助手的appName.exe.mda.config文件 使用注册表或环境变量启用MDA 在我自己的测试中,我看到当检测到ContextSwitchDeadlock时(从命令行而不是visual studio运行exe),我会看到一个调试器窗口,要求我连接到visual studio或启动一个新窗口;

调试应用程序时,我当前遇到
ContextSwitchDeadlock
。 但是,我想通过我们已经发布的应用程序来检测这一点

我已经计算出:

  • 如何创建一个列出
    contextSwitchDeadlock
    助手的appName.exe.mda.config文件
  • 使用注册表或环境变量启用MDA
在我自己的测试中,我看到当检测到
ContextSwitchDeadlock
时(从命令行而不是visual studio运行exe),我会看到一个调试器窗口,要求我连接到visual studio或启动一个新窗口;僵局已经被发现。太棒了

然而,在进一步调查中,当我将有问题的代码放在Try/Catch块中时,它会在生产中复制代码:

  • 我无法捕获或记录“异常”
  • 永远不会显示启动调试器的提示
我相信这就是在VisualStudio中勾选“抛出”或“未处理”框时的区别,例如,未处理与已处理。 但是我需要在运行时记录这个问题,不附加VisualStudio,并且使用我的异常处理程序

我找不到mda.config文件的任何语法-XML中是否存在允许我在抛出ContextSwtichHeadlock时输出到debugview或显示信息的属性或元素块

我知道这并不是一个真正的例外,但它的行为有点像一个例外——考虑到我有一个try/catch处理程序,并且当它发生在一个处理程序中时不显示

我们不能简单地将调试器附加到实时环境,甚至不允许登录或重新创建环境;因此,我尝试添加诊断,以发现死锁是否是客户面临的暂停的原因

代码中有什么可以帮助我们检测到的吗