Windows Azure Websites überschreiben, mein 404 und 500 Fehlerseiten in meinem node.js app

Ich bin mit der Windows-Azure-Websites zu hosten node.js -Anwendung. Soweit alles Super bis auf meine eigenen Fehler. In meinem node-app habe ich einen error-handler, der macht eine benutzerdefinierte 404-und custom 500-Fehler Seite Prima auf meinem lokalen Rechner. Jedoch, sobald ich veröffentlichen auf azure setzt es die Antwort, wenn ich den statusCode für alles, außer den 200.

Wenn ich nicht bestehen, die 500 oder 404-statusCode für die Antwort, dann passiert dies nicht, aber ich möchte das status-codes, um es an den browser. Lokal bekomme ich meine benutzerdefinierte Fehlerseite gut:

Windows Azure Websites überschreiben, mein 404 und 500 Fehlerseiten in meinem node.js app

Jedoch auf azure-websites, es gibt nur eine einzige Zeile text:

Die Seite kann nicht angezeigt werden, da ein interner server Fehler aufgetreten.

Ich habe versucht, meine eigene web.config überschreiben des Standard-ein benutzerdefinierter Fehler deaktiviert, aber das hat nicht scheinen, um eine Wirkung. Hier ist mein 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="&quot;%programfiles(x86)%\nodejs\node.exe&quot;"
            logDirectory="..\..\LogFiles\nodejs"
            watchedFiles="*.js;iisnode.yml;node_modules\*;views\*.jade;views\*.ejb;routes\*.js" />
    </system.webServer>
</configuration>

Ich bin mir nicht sicher, ob iisnode (die Erweiterung für iis, der leitet die Anfragen an node.js) ist zuständig für übergeordnete mein Fehler-Seiten oder, wenn der iis selbst verantwortlich ist. Irgendwelche Vorschläge?

  • Das hat nicht funktioniert für mich, und der Grund war ich hatte einen <staticContent> Abschnitt in meinem web.config. Entfernen, dass es fest für mich: stackoverflow.com/questions/22549579/...
  • Danke für die info @MattGreer. Hatte Sie Hinzugefügt, die <staticContent> element selbst oder ist das neu in Azure-Websites, die Standard-web-Browser.config? Wenn es ein Teil der Standard-web-Browser.config, dann möchte ich aktualisieren diese Antwort entsprechend Ihrer Korrektur.
  • Ich habe es mir, um IIS dienen SVGs (die es nicht standardmäßig)
InformationsquelleAutor Chev | 2013-02-28
Schreibe einen Kommentar