czwartek, 3 czerwca 2010

extendedProtectionPolicy spowoduje, że Twoja aplikacja przestanie działać, czyli WCF + Windows 7 = CRASH

Straciłem ostatnio ładnych kilka godzin namierzając problem, który skutkował kompletnym zamknięciem się aplikacji zaraz po jej starcie. Co ciekawe problem pojawiał się jedynie na komputerach produkcyjnych: u mnie działało :-)

Otóż jeśli tworzysz dowolnego klienta WCF i posiadasz system Windows 7 jest niemal pewne, że Twój klient nie uruchomi się na innych systemach operacyjnych! Dlaczego? Problem tkwi w elemencie extendedProtectionPolicy, który “potajemnie” dodawany jest do pliku App.config.

Więc jeśli Twoja aplikacja kończy działanie błedem zaraz po stworzeniu obiektu proxy dla klienta WCF i nie masz pojęcia o co chodzi, to rozwiązaniem jest usunięcie tego elementu z pliku App.config.

Mnie uratowała sesja z WinDbg, gdyż obiekt proxy miałem tworzony z kontenera StructureMap zaraz na początku w mojej aplikacji i nijak nie szło zdiagnozować problemu na komputerach produkcyjnych na których nie było żadnego środowiska programistycznego. Jednocześnie przekonałem się jak zaciemnić debugowanie może zastosowanie IoC.

0 komentarze: