私はWindowsAzureWebサイトを使用してnode.jsアプリケーションをホストしています。これまでのところ、カスタムエラーを除いてすべてが素晴らしいです。私のノードアプリには、ローカルマシンでカスタム404およびカスタム500エラーページを正常にレンダリングするエラーハンドラーがあります。ただし、azureに公開するとすぐに、statusCodeを200以外に設定すると、応答が上書きされます。
500または404statusCodeを応答に渡さない場合、これは発生しませんが、ステータスコードをブラウザに渡してもらいたいです。ローカルでは、カスタムエラーページが正常に表示されます。
ただし、Azure Webサイトでは、1行のテキストしか返されません。
内部サーバーエラーが発生したため、ページを表示できません。
カスタムエラーを無効にしてデフォルトのweb.configをオーバーライドする独自のweb.configを作成しようとしましたが、効果がないようです。これが私のweb.configです。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<customErrors mode="off" />
</system.web>
<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>
</configuration>
iisnode
(リクエストをnode.jsにルーティングするiisの拡張機能)がエラーページのオーバーライドを担当しているかどうか、またはiis自体が担当しているかどうかはわかりません。助言がありますか?