1

iisnode(node.jsがIISを介して要求を管理できるようにするIISの拡張機能)でnode.jsアプリケーションを実行しています。デフォルトでは、iisnodeはでデバッグツールへのアクセスを提供しますhttp://myapp.com/debug。ただし、Windows Azure Webサイトは、これを(おそらく偶然に)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(メインのアプリケーションファイル)にルーティングしているように見えます。これは、app.jsにルーティングされたくない場合を除いて/debug、すばらしいです。iisnodeに、想定どおりにデフォルトでそのリクエストを処理させたいのです。<action />リライトを削除すると、/debug実際にiisnodeデバッガーがプルアップされますが、もちろん他には何も機能しません:P

回避するためにこのURL書き換えを変更するにはどうすればよい/debugですか?

4

1 に答える 1