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

Sma*_*aug 7 debugging asp-classic iis-express visual-studio-2012

我想调试Classic ASP的网站Visual Studio 2012IIS Express.因此,我附iisexpress.exeVS 2012,但它显示Application Debugging is disabled.可能有什么问题?我是否要启用任何配置设置?

在此输入图像描述

Kev*_*Kev 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
Run Code Online (Sandbox Code Playgroud)

[YOUR_SITE_NAME]您网站的名称在哪里?您可以通过以下方式找到此名称:

%USERPROFILE%\Documents\IISExpress\config\applicationhost.config 
Run Code Online (Sandbox Code Playgroud)

...并搜索您的网站.

接下来,从命令行启动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"
Run Code Online (Sandbox Code Playgroud)

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

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

在此输入图像描述


use*_*811 2

据我所知,我没有 Visual Studio 2012 来测试它,因为 Visual Studio 无法本地调试 asp 经典代码。我调试我的 ASP 经典代码的方法是在我想要调试的代码上方的行中放入停止语句, 就像这篇文章所说的那样。断点只需输入 stop 即可。

function DoDate(inp)
   stop
if isnull(inp) then
    DoDate = "Never"
    exit function
end if  
Run Code Online (Sandbox Code Playgroud)

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

注意:该链接显示 Visual Studio 2005,但它也适用于 2010 年(并且也应该适用于 2012 年),您也不需要 DEBUG 扩展。

还要确保您在 IIS 中激活了服务器端调试,否则这将不起作用。

  • VS2012 可以使用全胖 IIS 和 IIS Express 本地调试经典 ASP 代码。 (3认同)