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=""%programfiles(x86)%\nodejs\node.exe""
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
ですか?