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