如何修改web.config以不重写某个URL?

时间:2013-02-28 20:16:41

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

我在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重写知之甚少,但我认为只要请求与实际静态不匹配,<action type="Rewrite" url="app.js"/>就会将所有请求路由到app.js(我的主应用程序文件)服务器上的文件。这很好,除了我不希望/debug被路由到app.js,我想让iisnode默认处理该请求,就像它应该的那样。如果我删除<action />重写/debug确实拉了iisnode调试器,但当然没有其他工作:P

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

1 个答案:

答案 0 :(得分:2)

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

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