标准AppPool标识如何具有弹出调试器窗口的权限

时间:2011-06-13 19:24:07

标签: c# .net asp.net iis debugging

我试图添加

System.Diagnostics.Debugger.Launch();

到我的IIS ASP.NET网站代码。我将应用程序作为标准AppPoolIdentity用户运行,它弹出一个调试窗口,我可以选择附加VS2010并调试该过程。我的问题是,什么允许AppPoolIdentity(虚拟)用户权限与我的桌面交互?通常这是不允许的。这是在Windows 7 x64上测试的。

谢谢!

2 个答案:

答案 0 :(得分:1)

当发生未处理的异常时,在注册表中进行检查以查看列出的调试器。

32位系统使用: KEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ AeDebug \ Debugger

这也可能是安全漏洞的来源 - 请参阅 http://support.microsoft.com/kb/923827

有关AEDebug注册表项的详细信息,请参阅: http://msdn.microsoft.com/en-us/library/5hs4b7a6.aspx

应用程序池标识未与您的桌面交互 - 调试器请求是。在您选择调试之前,没有任何内容可以“交互”,此时启动调试器并附加到该进程。

答案 1 :(得分:0)

最简单的事情是在VS attach to process中,选择IIS。您可以在应用程序中设置断点,它将在断点处停止。它也将停止你电脑上的每个网站!!!!

您可以做的另一件事是在您的应用上设置调试模式。默认只是我的代码。告诉它也调试本机代码。

这是一个像你这样的问题 How to start aspnet_wp.exe without firing Application_Start event