Von
Max Knor
14. October 2009 10:38
Unlängst wollte ich ein Windows Communication Foundation (WCF) Service auf den Internet Information Services (IIS 7) meines Internetproviders publizieren.
Das Service funktionierte problemlos auf dem lokalen ASP.NET Dev Webserver, aber nach dem Kopiervorgang auf den Server hatte ich beim Aufruf der Server URL (.SVC File) nur folgende Fehlermeldung:
HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration data for the page is invalid.
The configuration section 'system.serviceModel' cannot be read because it is missing a section declaration.
Ein anderer möglicher Fehler, der das gleiche Problem beschreibt ist:
Unhandled Exception: System.ServiceModel.ProtocolException: The remote server returned an unexpected response: (405) Method not allowed
Nach kurzer Recherché fand ich das Problem: Der Provider hatte auf diesem IIS den Dateityp .SVC für WCF Services nicht registriert!
Um WCF im IIS zu registrieren, muss man folgende Schritte folgen:
- Sicherstellen, dass ASP.NET Seiten auf dem IIS funktionieren (sonst zweite Anleitung über ASP.NET Registrierung unterhalb folgen).
- Den folgenden Befehl auf einer Kommandozeile als Administrator ausführen:
"%WINDIR%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" –i
Damit werden .SVC Dateien im IIS registriert und WCF funktioniert nun.
Um gegebenenfalls vorher ASP.NET im IIS 7 zu registrieren, sollten folgende Schritte ausgeführt werden:
- Eine Kommandozeile als Administrator öffnen.
- Folgenden Befehl ausführen:
"%WINDIR%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe" –i
Mehr Details dazu sind auf der MSDN Library zu finden:
knom