我想Classic ASP
用Visual Studio 2012
. IIS Express
因此,我附上了iisexpress.exe
in VS 2012
,但它显示Application Debugging is disabled
. 可能是什么问题?我要启用任何配置设置吗?
4 回答
首先,您需要启用经典 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 的调试器并在要调试的脚本中设置断点。浏览到您的站点/脚本,您应该会看到断点亮起:
据我所知,Visual Studio 无法在本地调试 asp 经典代码,我没有 Visual Studio 2012 对其进行测试。我调试我的 asp 经典代码的方式是在我想要调试的那一行上面的行中放入停止语句, 就像这篇文章说的那样。断点只是输入停止。
function DoDate(inp)
stop
if isnull(inp) then
DoDate = "Never"
exit function
end if
在上面的示例中,页面加载后将在断点处停止并弹出一个对话框,询问您是否要调试它,然后您可以单步执行该函数,甚至可以像往常一样查看变量。
注意:链接显示 Visual Studio 2005,但它也适用于 2010 年(也应该适用于 2012 年),您也不需要 DEBUG 扩展。
还要确保您在 IIS 中激活了服务器端调试,否则这将不起作用。
转到 IIS-->ASP-->调试属性-->启用客户端和服务器端调试
然后从 VS2012 附加 w3wp 进程
我喜欢在我的开发机器上使用成熟的 IIS,因为它是我的 Web 服务器运行的,并且过去在 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"
享受调试代码的乐趣。