Mam usługę WCF, która działa doskonale i coś się zmieniło i nie wiem co.
Mam ten wyjątek:
System.ServiceModel.FaultException: serwer nie mógł przetworzyć żądania z powodu błędu wewnętrznego. Aby uzyskać więcej informacji o błędzie, włącz opcję IncludeExceptionDetailInFaults (z ServiceBehaviorAttribute lub z zachowania konfiguracji) na serwerze w celu wysłania informacji o wyjątku z powrotem do klienta lub włącz śledzenie zgodnie z dokumentacją zestawu Microsoft .NET Framework 3.0 SDK i sprawdź dzienniki śledzenia serwera.
Jest to mylące, ponieważ używam .NET 4.0.
Gdzie mam włączyć IncludeExceptionDetailInFaults
? Walczę, żeby to znaleźć.
źródło
Znajduje się w pliku app.config.
źródło
Jeśli chcesz to zrobić za pomocą kodu, możesz dodać takie zachowanie:
źródło
ServiceHost
instancji obiektu: Przykład:ServiceHost serviceHost = new ServiceHost(Program.serviceInstance);
Możesz również ustawić to w tagu [ServiceBehavior] powyżej deklaracji klasy, która dziedziczy interfejs
Immortal Blue ma rację, nie ujawniając szczegółów wyjątku w publicznie wydanej wersji, ale do celów testowych jest to przydatne narzędzie. Zawsze wyłączaj po puszczeniu.
źródło
Otrzymałem również ten sam błąd, WCF działało poprawnie, gdy używałem go w środowisku deweloperskim z moimi poświadczeniami, ale gdy ktoś inny używał go w TEST, generował ten sam błąd. Zrobiłem wiele badań, a następnie zamiast wykonywać aktualizacje konfiguracji, obsłużyłem wyjątek w metodzie WCF za pomocą wyjątku błędu. Ponadto tożsamość programu WCF musi być ustawiona przy użyciu tych samych poświadczeń, które mają dostęp do bazy danych, ktoś mógł zmienić Twoje uprawnienia. Poniżej kod na to samo:
w swoim service1.svc.cs możesz użyć tego w bloku catch:
I użyj tego w aplikacji klienckiej, jak poniższy kod:
Po prostu spróbuj tego, na pewno pomoże to uzyskać dokładny problem.
źródło
źródło