在经典ASP调试的Visual Studio 2012中禁用了应用程序调试

时间:2013-11-04 02:43:44

标签: debugging visual-studio-2012 asp-classic iis-express

我想使用Classic ASPVisual Studio 2012调试IIS Express网站。因此,我在iisexpress.exe附加了VS 2012,但它显示了Application Debugging is disabled。可能有什么问题?我是否要启用任何配置设置?

enter image description here

4 个答案:

答案 0 :(得分:7)

首先,您需要启用经典ASP脚本的服务器端调试。通过运行以下命令来执行此操作:

"C:\Program Files (x86)\IIS Express\appcmd.exe" set config "[YOUR_SITE_NAME]" -section:system.webServer/asp /appAllowClientDebug:"True" /appAllowDebugging:"True"  /commit:apphost

[YOUR_SITE_NAME]是您网站的名称。您可以通过以下方式找到此名称:

%USERPROFILE%\Documents\IISExpress\config\applicationhost.config 

...并搜索您的网站。

接下来,从命令行启动IIS Express实例:

"C:\Program Files (x86)\IIS Express\iisexpress.exe" /config:c:\users\kevin\Documents\IISExpress\config\applicationhost.config /site:"[YOUR_SITE_NAME]" /apppool:"Clr2IntegratedAppPool"

同样,[YOUR_SITE_NAME]是IIS Express网站的名称。

然后附加Visual Studio 2012的调试器并在要调试的脚本中设置断点。浏览到您的站点/脚本,您应该看到断点亮起:

enter image description here

答案 1 :(得分:2)

据我所知,我没有visual studio 2012来测试它,因为visual studio无法原生地调试asp经典代码。 我调试我的经典代码的方法是在我要调试的行上面放入stop语句 like this post says。断点只是输入停止。

function DoDate(inp)
   stop
if isnull(inp) then
    DoDate = "Never"
    exit function
end if  

在上面的示例中,加载的页面将在断点处停止并弹出一个对话框,询问您是否要调试它,然后您可以单步执行该功能,甚至可以看到通常的变量。

注意:链接显示为visual studio 2005,但它也适用于2010年(也应该在2012年有效),您也不需要DEBUG扩展名。

还要确保在IIS中激活了服务器端调试,否则无法正常工作。

答案 2 :(得分:1)

转到IIS - > ASP - >调试属性 - >启用客户端和服务器端调试

然后从VS2012附加w3wp进程

答案 3 :(得分:0)

我喜欢在我的开发计算机上使用完整的IIS,因为它是我的网络服务器运行的,并且过去在Casini和IIS之间存在差异问题。

无论如何,我无法像@Kev建议的那样去做。我做了更多的游戏+阅读,发现在"附加到过程"窗口,你需要专门选择"脚本代码"在"附加到:"选项。

1) F9 to set breakpoints in code
2) Ctrl-Alt-P to attach to process
3) Next to "Attach To:" click on the "Select" button
4) Select "Script Code"
5) In my case, attach to "w3wp.exe"

享受调试代码。