Versucht man eine Blazor WASM App auf einem Linux-Server mit Plesk zu installieren, stößt man im schlechtesten Fall auf massenweise “Uncaught (in promise) TypeError: Failed to fetch” Errors in der Developer Console.
Die Blazor WASM App bleibt entweder beim Laden hängen oder zeigt nur eine unvollständige Oberfläche, da sie nicht komplett geladen wird.
Blazor WASM App: Die Lösung für “TypeError: Failed to fetch”
Was zuerst wie ein CORS-Problem aussieht, entpuppt sich bei näherem Hinsehen als eine ModSecurity-Regel, die hier irrtümlich greift. Weis man wo man suchen muss, spart das viele Stunden erfolgloser Tests.
Ein Blick in die Plesk Logs zeigt genau wo das Problem liegt:
Die ModSecurity-Regel mit ID 210730 meckert über Files mit der Extension “.dat”. Somit wird das in unserer Blazor WASM App integrierte ASP .NET Runtime blockiert.
Ab jetzt ist die Lösung einfach:
- In Plesk öffnen wir “Tools & Settings / Web Application Firewall (ModSecurity)”
- Unter “Switch off security rules” fügen wir ID 210730 als Ausnahme zur Liste hinzu und speichern die Änderung.
- Danach löschen wir den Browser-Cache und laden die Seite neu.
Nun sollte unsere Blazor WASM App auch unter Plesk klaglos starten :-)
Blazor Web App als Blazor WASM-Alternative
Alternativ zur Web-Assembly lässt sich auch eine vollwertige Blazor Web App unter Plesk installieren. Ein Windows Server ist dazu nicht notwendig. Dieser Beitrag zeigt wie das mit relativ wenig Aufwand funktioniert:
Blazor Web App unter Linux & Plesk installieren