[英]vsjitdebugger.exe (Visual Studio Debugger) - shows up lots in my task manager in production server
I've got a .net web site which runs on IIS. 我有一个在IIS上运行的.net网站。 Once every few days I look at the task manager and I've got 10-15 vsjitdebugger.exe processes open. 每隔几天我就会看一下任务管理器,我打开了10-15个vsjitdebugger.exe进程。 Each one ties up some connections so it causes problems with the db pool unless I manually go in and end the process. 每个连接都会占用一些连接,因此除非我手动进入并结束进程,否则会导致数据库池出现问题。
At one point, Visual Studio was installed on this box, though it's since been uninstalled. 有一次,Visual Studio安装在这个盒子上,虽然它已被卸载。 I'm wondering if this is the reason the debugger tries to start when an error occurs. 我想知道这是否是调试器在发生错误时尝试启动的原因。
However, what I want to know is how do I get IIS to stop attempting to launch the debugger when an error happens? 但是,我想知道的是,当错误发生时,如何让IIS停止尝试启动调试器? Is there anyway that it can simply go on with life without trying to debug? 无论如何,它可以简单地继续生活而不试图调试?
I also wonder, could the way the app is deployed (as a debugged app with the PDB's instead of a release version) make a difference? 我也想知道,应用程序的部署方式(作为PDB而不是发布版本的调试应用程序)会有所不同吗? Or even having debugging turned on in the web.config? 甚至在web.config中打开调试?
It sounds like the machine is configured to automatically run the debugger if an unhandled exception occurs in the process. 听起来机器配置为在进程中发生未处理的异常时自动运行调试器。 You don't want this in a production server but instead likely want it to terminate the process. 您不希望在生产服务器中使用它,而是希望它终止该过程。 This behavior is controlled by the DbgManagedDebugger key in the registry. 此行为由注册表中的DbgManagedDebugger键控制。 Here is the documentation for that key 这是该密钥的文档
It could be that you still have the debugger regkeys set. 可能是您仍然设置了调试器regkeys。 Can you check the value of your HKLM\\Software\\Microsoft\\Windows NT\\CurrentVersion\\AEDebuger\\Debugger and the HKLM\\Software\\Microsoft.NETFramework\\DbgManagedDebugger keys. 你能检查你的HKLM \\ Software \\ Microsoft \\ Windows NT \\ CurrentVersion \\ AEDebuger \\ Debugger和HKLM \\ Software \\ Microsoft.NETFramework \\ DbgManagedDebugger键的值。 These are the keys that the OS looks at when an unhandled exception occurs (it will launch whatever these keys are set to). 这些是操作系统在发生未处理的异常时所看到的键(它将启动这些键被设置为的任何内容)。
Sometimes a developer puts in a line of code to Debugger.Launch() and forgets to remove it. 有时开发人员会将一行代码放入Debugger.Launch()并忘记删除它。 That will force the JIT dialog to say, "An exception 'Launch for user' has occurred ...". 这将强制JIT对话框说:“发生了'用户启动'的异常......”。 If you are getting that message then it's a hardcoded statement to launch the debugger. 如果您收到该消息,那么它是启动调试器的硬编码语句。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.