Ich habe jetzt die Möglichkeit hinzugefügt, SVG- und WOFF-Dateien in meiner von Azure gehosteten Webanwendung bereitzustellen. Ich habe folgende Anweisungen gefunden:
Diesem folgte ich, indem ich den folgenden Text meiner Web.config-Datei hinzufügte:
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
<mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
<mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
</staticContent>
Dies funktioniert bei der Veröffentlichung in Azure. Nun bekomme ich jedoch die folgende Fehlermeldung von IIS-Express, wenn ich versuche, Starten der Website im Debugmodus lokal für jede Ressource, die die Website zu bedienen versucht.
HTTP-Fehler 500.19 - Interner Serverfehler
Auf die angeforderte Seite kann nicht zugegriffen werden, da die zugehörigen Konfigurationsdaten für die Seite ungültig sind.
Detaillierte Fehlerinformationen:
- Modul: CustomErrorModule
- Benachrichtigung SendResponse
- Handler StaticFile
- Fehlercode 0x800700b7
- Config Error Kann keinen doppelten Sammlungseintrag des Typs 'mimeMap' hinzufügen, wobei das eindeutige Schlüsselattribut 'fileExtension' auf '.svg' gesetzt ist.
- Konfigurationsdatei snip\web.config
- Angeforderte URL http: // snip: 14466/resources/img/snip .png
- Physischer Pfad C: * snip *\Resources\img * snip * .png
- Anmeldemethode Anonym
- Anmeldebenutzer anonym
Konfigurationsquelle:
58: <mimeMap fileExtension=".json" mimeType="application/json" /> 59: <mimeMap fileExtension=".svg" mimeType="image/svg+xml" /> 60: <mimeMap fileExtension=".woff" mimeType="application/x-font-woff"/>
Es hasst eindeutig meine MimeMap für .svg, aber das funktioniert auf Azure-Websites gut. Gibt es etwas, was ich vermisse, wenn diese Änderungen lokal an der Web.config vorgenommen werden?
Und natürlich finde ich diese Antwort, nachdem ich bereits meine Frage gestellt habe:
Hinzufügen des <mimeMap> -Eintrags verursacht 500 für anderen statischen Inhalt in IIS Express
Das Problem ist also, dass in meiner lokalen IIS -Konfiguration die Module bereits geladen sind, während dies in der Produktionsumgebung nicht der Fall ist. Um das Problem in beiden Umgebungen zu beheben, müssen Sie sicherstellen, dass die MimeMaps vor dem Laden entladen werden.
Der Code lautet wie folgt für das Update:
<staticContent>
<remove fileExtension=".json"/>
<mimeMap fileExtension=".json" mimeType="application/json" />
<remove fileExtension=".svg"/>
<mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
<remove fileExtension=".woff"/>
<mimeMap fileExtension=".woff" mimeType="application/x-font-woff"/>
</staticContent>
Ich hoffe, dies hilft anderen dabei, Zeit zu verschwenden, um nach einer Lösung zu suchen.
Ich habe festgestellt, dass, wenn Sie any mimeMap-Elemente zwischen Ihrem Web.Config
in dem Verzeichnis, in dem sich Ihre App befindet, und dem Standard %UserProfile%\Documents\IISExpress\config\applicationhost.config
dupliziert sind, dies für alle fehlschlagen wird.
Dieselbe Lösung funktionierte: <remove>
each<mimeMap>
-Eintrag.