Problembehandlung bei der Bereitstellung einer RIA Services-Projektmappe

WCF RIA Services

Die Problembehandlung für eine WCF RIA Services-Projektmappe stellt eine besondere Herausforderung dar, weil eine Ausnahme auf vielen verschiedenen Ebenen auftreten kann. Sie benötigen eine genaue Kenntnis davon, wie Fehler von unterschiedlichen Ebenen gemeldet werden, um effektiv eine Problembehandlung für die Anwendung durchzuführen. In diesem Thema werden diese Ebenen beschrieben und einige Techniken vorgestellt, mit denen Sie beim Auftreten einer Ausnahme eine Problembehandlung für RIA Services -Anwendungen durchführen können. Zudem werden viele der Fehler, die beim Bereitstellen von RIA Services auftreten können, im neuen Bereitstellungshandbuch bereits vorweggenommen und erläutert. Näheres hierzu finden Sie unter Anleitung zum Bereitstellen von RIA Services-Projektmappen.

Ausnahmefluss

In einer RIA Services -Anwendung werden Ausnahmen in der folgenden Reihenfolge von der untersten ursächlichen Ebene an den Client weitergeleitet:

  1. Domänendienst

  2. RIA Services-Diensthost

  3. WCF

  4. ASP.NET

  5. IIS

  6. Silverlight-Anwendung

Ausnahmefluss von Ebenen

Aktivieren ausführlicher ASP.NET-Fehlerinformationen

Standardmäßig ist das customErrors-Element in der Datei Web.config auf RemoteOnly festgelegt, sodass ein Remoteclient keine detaillierten ASP.NET-Fehlerinformationen erhält. Um die Anwendung zu debuggen, legen Sie customErrors auf Off fest, damit im Client ausführliche ASP.NET-Fehler angezeigt werden.

noteHinweis:
Stellen Sie die Anwendung nicht öffentlich zur Verfügung, während customErrors auf Off festgelegt ist, da in den Fehlermeldungen unter Umständen sensible Informationen enthalten sein können.

Untersuchen von Fehlern mit dem Fiddler-Tool

Alle Ausnahmen, die innerhalb eines Domänendiensts ausgelöst werden, werden mit dem Fehlerstatuscode 200 an den Silverlight-Client gesendet. Alle Ausnahmen, die auf der WCF-Ebene oder darunter ausgelöst werden, werden mit dem Fehlerstatuscode 404 an den Silverlight-Client gesendet. Sie können den Fiddler-HTTP-Debugger ausführen, um den tatsächlichen Fehler anzuzeigen.

Direktes Aufrufen des Domänendiensts

Oft ist es hilfreich, die SVC-Datei des Domänendiensts direkt aufzurufen. Auf diese Weise können Sie überprüfen, ob der WCF-Dienst verfügbar ist. Es ist jedoch nicht ganz einfach, den Pfad zur SVC-Datei zu ermitteln, da diese nicht in der Projektmappe enthalten ist. Sie können den Domänendienst in einem Webbrowser direkt aufrufen, indem Sie folgendes Muster verwenden:

http://[Host]/[geänderter Klassenname für Domänendienst].svc

Bestimmen Sie den geänderten Klassennamen, indem Sie im vollqualifizierten Klassennamen jeden Punkt (.) durch ein Minus (-) ersetzen. Für einen Domänendienst mit dem Namen:

ExampleApplication.Web.CustomerDomainService

ergibt sich damit der SVC-Dateiname:

ExampleApplication-Web-CustomerDomainService.svc

Wenn diese Datei auf localhost gehostet wird, können Sie die Datei wie folgt direkt aufrufen:

http://localhost/ExampleApplication-Web-CustomerDomainService.svc

Wenn der Dienst verfügbar ist, wird eine Webseite mit Informationen zu den Diensten und Angaben zum Testen eines Diensts angezeigt. Wenn der Dienst nicht verfügbar ist, wird eine Fehlerseite mit Informationen angezeigt, die ggf. hilfreich für die Fehlersuche sind. Wenn Sie einen Fehler erhalten, wurde die Ausnahme vermutlich auf der RIA Services-Diensthostebene ausgelöst.

Überschreiben der OnError-Methode des Domänendiensts

Wenn während der Verarbeitung eines DomainService-Vorgangs ein nicht behebbarer Fehler auftritt, wird die OnError-Methode aufgerufen. Sie können diese Methode überschreiben, um Fehler zu analysieren, bevor sie zurück an den Client gesendet werden.

Verwenden herkömmlicher WCF-Ablaufverfolgungstechniken

Für Ausnahmen auf der WCF-Ebene können Sie die Problembehandlung auf dieselbe Weise wie für jeden WCF-Dienst durchführen. Weitere Informationen zur Diagnoseablaufverfolgung für WCF-Dienste finden Sie unter Ablaufverfolgung.

Eine Ausnahme, die auf der WCF-Ebene ausgelöst wird, wird in Fiddler nicht angezeigt. Zur Problembehandlung bei einer Dienstausnahme können Sie versuchen, die SVC-Datei aufzurufen. Wenn Sie die SVC-Datei ohne Fehler aufrufen können, der Dienst aber zur Laufzeit fehlschlägt, wird die Ausnahme möglicherweise auf der WCF-Ebene ausgelöst.

Überprüfen der ASP.NET- und IIS-Einstellungen

Bei Ausnahmen, die auf der ASP.NET- oder der IIS-Ebene ausgelöst werden, enthält der Stack keine Informationen aus der RIA Services -Anwendung. Ausnahmen können auf dieser Ebene in folgenden Situationen ausgelöst werden:

  • Die Datei Web.config enthält nicht die richtigen HttpModule-Elemente für die verwendete IIS-Version.

  • WCF ist auf dem Webserver nicht aktiviert.

Anzeigen: