【问题标题】:How do I modify web.config to not rewrite a certain url?如何修改 web.config 以不重写某个 url?
【发布时间】:2013-02-28 20:16:40
【问题描述】:

我在 iisnode(IIS 的扩展,允许 node.js 通过 IIS 管理请求)下运行 node.js 应用程序。默认情况下,iisnode 允许访问http://myapp.com/debug 的调试工具。然而,Windows Azure 网站使用 web.config 中的 urlrewrite 覆盖了这一点(可能是偶然的)。

<system.webServer>
    <handlers>
        <add name="iisnode" path="app.js" verb="*" modules="iisnode"/>
    </handlers>
    <rewrite>
        <rules>
            <rule name="StaticContent">
                <action type="Rewrite" url="public{REQUEST_URI}"/>
            </rule>
            <rule name="DynamicContent">
                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True"/>
                </conditions>
                <action type="Rewrite" url="app.js"/>
            </rule>
        </rules>
    </rewrite>
    <iisnode
        debuggingEnabled="true"
        devErrorsEnabled="true"
        debuggerPathSegment="debug"
        nodeProcessCommandLine="&quot;%programfiles(x86)%\nodejs\node.exe&quot;"
        logDirectory="..\..\LogFiles\nodejs"
        watchedFiles="*.js;iisnode.yml;node_modules\*;views\*.jade;views\*.ejb;routes\*.js" />
</system.webServer>

我不太了解 web.config 重写,但在我看来,&lt;action type="Rewrite" url="app.js"/&gt; 将所有请求路由到 app.js(我的主应用程序文件),只要请求与实际的静态文件不匹配服务器。这很好,除了我不希望 /debug 被路由到 app.js,我想让 iisnode 默认处理该请求,就像它应该做的那样。如果我删除 &lt;action /&gt; 重写 /debug 确实会启动 iisnode 调试器,但是当然没有其他工作:P

如何修改此 url 重写以避免/debug

【问题讨论】:

    标签: asp.net iis azure web-config iisnode


    【解决方案1】:

    事实证明,由于技术原因,iisnode 调试器在 Windows Azure 网站上不可用,并且任何 web.config 修改都无法使其正常工作。

    https://github.com/tjanczuk/iisnode/issues/262

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-13
      • 1970-01-01
      • 2017-08-23
      • 2012-06-04
      • 2019-03-15
      • 2018-03-28
      • 2012-12-06
      • 2011-05-23
      相关资源
      最近更新 更多