【问题标题】:Application Debugging is disabled in Visual Studio 2012 on Classic ASP Debugging应用程序调试在 Visual Studio 2012 中的经典 ASP 调试中被禁用
【发布时间】:2013-11-04 02:43:44
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    首先您需要启用经典 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 的调试器并在要调试的脚本中设置断点。浏览到您的站点/脚本,您应该会看到断点亮起:

    【讨论】:

    • 您的回答非常详细且很有帮助。但是,当我附加 IISExpress 时,它只是显示空白屏幕,这不是用于调试的文件。如果我在 asp 编码中停止它会加载所有文件以进行调试。请告知这种奇怪行为的原因是什么?
    • 您是否将要调试的脚本添加到您的解决方案中?您需要这样做并设置断点。
    • +1 这行得通! ... 对于一小部分我的项目/站点的 ASP 文件。可以看看this follow-up question吗?
    【解决方案2】:

    据我所知,我没有 Visual Studio 2012 来测试它,Visual Studio 无法原生调试 asp 经典代码。 我调试我的 asp 经典代码的方式是在我要调试的那一行的上方放入停止语句 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 中激活了服务器端调试,否则这将不起作用。

    【讨论】:

    • VS2012 可以使用全脂 IIS 和 IIS Express 本地调试经典 ASP 代码。
    • @user2255811 你的回答救了我,我花了很多时间让它工作。最后,别耍花招了。谢谢
    【解决方案3】:

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

    然后从 VS2012 附加 w3wp 进程

    【讨论】:

      【解决方案4】:

      我喜欢在我的开发机器上使用成熟的 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"
      

      享受调试代码的乐趣。

      【讨论】:

      • 你好,我试过了——虽然它确实在我的断点处停止,但我看不到任何东西的值。将鼠标悬停在任何变量上都不起作用。有什么建议么?这是在 IIS 8.5(win 8.1)和 vs 2012 上。
      • 嗯....我以前没见过这个.. IDE 偶尔会出现问题,例如您将鼠标悬停在哪里而看不到任何值。这通常通过将鼠标从变量移开然后移回来解决。除此之外,您可以使用 Watch 窗口或 Immediate 窗口。不太方便,但通常仍然可以使用。甚至 Ctrl-F9 (??) 用于快速观看。
      • 尝试突出显示变量(双击它应该突出显示它),然后将鼠标悬停在它上面。我还认为我无法将鼠标悬停在变量上并查看它们的值,但后来我突出显示(用鼠标选择了文本)并将鼠标悬停在它上面并且它起作用了。
      猜你喜欢
      • 1970-01-01
      • 2011-03-28
      • 1970-01-01
      • 2013-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-23
      • 1970-01-01
      相关资源
      最近更新 更多