【问题标题】:Does IIS Express support Debugging Classic ASP?IIS Express 是否支持调试经典 ASP?
【发布时间】:2011-05-30 02:08:24
【问题描述】:

我最近安装了 Visual Studio 2010 SP1 BETAASP.NET MVC 3 RC2IIS Express

我在使用 IIS Express 的项目中成功获得了一个与 经典 ASP 页面一起运行的 MVC 3 项目

我想知道是否有办法在使用 IIS Express 时在 Visual Studio 中设置经典 ASP调试 断点?

如果是这样,是否有任何关于如何做到这一点的教程/帖子?

【问题讨论】:

    标签: asp-classic asp.net-mvc-3 visual-studio-debugging iis-express


    【解决方案1】:

    在 IIS Express 中启用 ASP 调试:

    1.找到相应的 applicationhost.config 文件以根据您的 Visual Studio 版本进行更新。

    • Visual Studio 2015 及更高版本: 每个 Web 应用都有自己的 applicationhost.config 文件,您需要对其进行修改。每个文件都位于 {solution directory}\.vs\config(请记住 .vs 是一个隐藏文件夹)
    • 在 Visual Studio 2015 之前:您可以通过修改位于 %USERPROFILE%\Documents\IISExpress\config 中的 applicationhost.config 来启用所有 Web 应用程序的调试。

    (如果你找不到applicationhost.config,那是因为Web应用程序还没有在IISExpress中启动。所以继续启动你的应用程序,然后文件就会被创建。)

    2. 在文本编辑器中打开 applicationhost.config 并将 <system.webServer><asp> 元素更改为:

    <asp scriptErrorSentToBrowser="true" enableParentPaths="true" bufferingOn="true" errorsToNTLog="true" appAllowDebugging="true" appAllowClientDebug="true">
        <cache diskTemplateCacheDirectory="%TEMP%\iisexpress\ASP Compiled Templates" />
        <session allowSessionState="true" />
        <limits />
    </asp>
    

    开始调试:

    1. 启动网站不调试
    2. 在 Visual Studio 中,打开“附加到进程”对话框。
    3. 附加到更改为脚本
    4. 选择 iisexpress.exe 并单击附加。

    设置断点:

    1. 调试后,浏览到要调试的页面。 (是的,在您设置任何断点之前。)
    2. 返回 VS,转到解决方案资源管理器,您将看到一个“脚本文档”节点,其中列出了 IIS Express 缓存的文件。 展开此节点,直到找到需要断点的 .asp 页面。 (在您按照上一步浏览该页面之前,该页面不会出现在此列表中。)
    3. 打开这个文件并在此处设置断点(不是原始源文件)。
    4. 刷新或重新导航到页面以命中断点。

    请记住,如果您需要对此页面进行更改,请在原始源文件中进行更改,而不是在带有断点的版本中进行。当您保存这些更改时,该文件将从 IIS Express 缓存中删除,因此您必须重复这些步骤以再次设置断点。

    更多详情请见Dixin's Blog

    【讨论】:

      【解决方案2】:

      我发现这样做的唯一方法是按照 David Lively 的回答中发布的 Scott Guthrie's blog。一旦您将站点设置为允许 F5Ctrl + F5 启动应用程序。您需要安装 IIS 5/6/7 并将站点添加为根目录或虚拟目录。所以你有 IIS express 和 IIS 完全指向同一个物理目录。现在启动 IIS 实例。就我而言,我只是导航到本地主机。这将启动 w3wp.exe 现在在 VSS 中附加到进程 W3wp.exe。

      除此之外。我不相信在 IIS Express 中调试 ASP 经典版有真正的解决方案。

      【讨论】:

        【解决方案3】:

        另请参阅我回答的这个问题。

        IIS Express and Classic ASP

        调试经典的 asp 还是有点失败,但它是可行的

        【讨论】:

          【解决方案4】:

          令人惊讶的是,IIS Express 确实支持经典 ASP,这与 Cassini 不同。

          (在此之前我什至没有听说过 IIS Express - 看起来是一种很有前途的方法,可以让开发人员的机器运行该站点的本地副本,而无需配置完整的 IIS 的复杂性)。

          See this blog from Scott Guthrie.

          我还没有找到在经典 ASP 中设置断点等的方法。如果除了在 ASP DLL 中设置断点(这将几乎没用)之外,还以任何方式支持它,我会非常非常惊讶。

          【讨论】:

          • 我已经成功地使用常规 IIS 在 Visual Studio 中设置了带有断点的经典 asp 调试(没问题)。我想知道我是否也可以使用 IIS Express。
          • 查看my answer了解如何设置断点。
          猜你喜欢
          • 1970-01-01
          • 2011-07-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-09-24
          • 1970-01-01
          相关资源
          最近更新 更多