Ich habe einen WCF-Dienst, der perfekt funktioniert hat, und etwas hat sich geändert, und ich weiß nicht, was.
Ich bekomme diese Ausnahme:
System.ServiceModel.FaultException: Der Server konnte die Anforderung aufgrund eines internen Fehlers nicht verarbeiten. Für weitere Informationen zum Fehler aktivieren Sie entweder IncludeExceptionDetailInFaults (entweder von ServiceBehaviorAttribute oder vom Konfigurationsverhalten) auf dem Server, um die Ausnahmeinformationen an den Client zurückzusenden, oder aktivieren Sie die Ablaufverfolgung gemäß der Microsoft .NET Framework 3.0 SDK-Dokumentation und überprüfen Sie die Server-Trace-Protokolle.
Dies ist verwirrend, da ich .NET 4.0 verwende.
Wo schalte ich ein IncludeExceptionDetailInFaults
? Ich kämpfe darum, es zu finden.
quelle
Es befindet sich in der Datei app.config.
quelle
Wenn Sie dies per Code tun möchten, können Sie das folgende Verhalten hinzufügen:
quelle
ServiceHost
Objektinstanz hinzu: Beispiel:ServiceHost serviceHost = new ServiceHost(Program.serviceInstance);
Sie können es auch im Tag [ServiceBehavior] über Ihrer Klassendeklaration festlegen, die die Schnittstelle erbt
Immortal Blue gibt die Ausnahmedetails zu Recht nicht an eine öffentlich veröffentlichte Version weiter, aber zu Testzwecken ist dies ein praktisches Tool. Beim Loslassen immer wieder ausschalten.
quelle
Ich habe auch den gleichen Fehler erhalten, die WCF funktionierte ordnungsgemäß für mich, als ich sie in der Entwicklungsumgebung mit meinen Anmeldeinformationen verwendete, aber als jemand anderes sie in TEST verwendete, gab sie den gleichen Fehler aus. Ich habe viel recherchiert und dann statt Konfigurationsaktualisierungen eine Ausnahme in der WCF-Methode mit Hilfe einer Fehlerausnahme behandelt. Außerdem muss die Identität für die WCF mit denselben Anmeldeinformationen festgelegt werden, die Zugriff auf die Datenbank haben. Möglicherweise hat jemand Ihre Berechtigung geändert. Nachfolgend finden Sie den Code für dasselbe:
In Ihrer service1.svc.cs können Sie dies im catch-Block verwenden:
Und verwenden Sie dies in der Client-Anwendung wie folgt:
Versuchen Sie dies einfach, es wird sicher helfen, das genaue Problem zu bekommen.
quelle
quelle