Sveiki,
turiu problemėlę, kurios sprendimo niekaip negaliu rasti.
Turim ASP.NET Web Service application (.NET 3.5), kuris naudoja WSE3 extensionus Kerberos/UserName autentifikacijai. Servisas turi aprašytą ReceiveSecurityFilter kuris iš principo tik paima iš užklausos antraštės Principal'ą ir pasetina į Thread.CurrentPrincipal.
Viskas veikia gerai, tačiau retkarčiais servisas "lūžta" su unhandled exception'u ir įrašu EventLog'e (atsiprašau už vokiečių kalbą):
Ereignistyp: Fehler Ereignisquelle: .NET Runtime 2.0 Error Reporting Ereigniskategorie: Keine Ereigniskennung: 5000 Datum: 22.01.2010 Zeit: 08:39:57 Benutzer: Nicht zutreffend Computer: VM1-PS-1-MAS Beschreibung: EventType clr20r3, P1 w3wp.exe, P2 6.0.3790.1830, P3 42435be1, P4 mscorlib, P5 2.0.0.0, P6 4a7cd8f7, P7 4dc7, P8 6, P9 udta330idobh2roz2ayvlcelag5agtls, P10 NIL.
ir sekantis įrašas:
Ereignistyp: Fehler Ereignisquelle: ASP.NET 2.0.50727.0 Ereigniskategorie: Keine Ereigniskennung: 1334 Datum: 22.01.2010 Zeit: 08:39:49 Benutzer: Nicht zutreffend Computer: VM1-PS-1-MAS Beschreibung: Der Prozess wurde aufgrund einer unbehandelten Ausnahme beendet. Application ID: /LM/W3SVC/1790319398/Root/PrintingService Process ID: 2144 Exception: System.Security.Cryptography.CryptographicException Message: Falscher Parameter. StackTrace: bei System.Security.Cryptography.CryptographicException.ThrowCryptogaphicException(Int32 hr) bei System.Security.Cryptography.SafeHashHandle._FreeHash(IntPtr pHashCtx) bei System.Security.Cryptography.SafeHashHandle.ReleaseHandle() bei System.Runtime.InteropServices.SafeHandle.InternalFinalize() bei System.Runtime.InteropServices.SafeHandle.Dispose(Boolean disposing) bei System.Runtime.InteropServices.SafeHandle.Finalize() Weitere Informationen über die Hilfe- und Supportdienste erhalten Sie unter http://go.microsoft.com/fwlink/events.asp.
Servisas - 32 bitų (Windows Server 2003 su visais atnaujinimais).
Į jį gali kreiptis kiti servisai arba klientinės aplikacijos. Dauguma jų - 64 bitų aplikacijos.
Gal kas turit kokių gerų idėjų?
http://blogs.msdn.com/tess/archive/2006/04/27/asp-net-2-0-crash-case-study-unhandled-exceptions.aspx
http://blogs.msdn.com/tess/archive/2007/10/31/asp-net-crash-system-security-cryptography-cryptographicexception.aspx
O siaip nebandei su Reflector'ium pažiūrėti, kas tame _FreeHash() metode gali raisinti CryptographicException exception'ą?
Pažiūrėk šitą: http://support.microsoft.com/kb/927039
O jūs neplanavot / nenorėtumėt pamigruoti į WCF?
Kiek man teko WSE3 bandyti, nelabai malonus daiktas pasirodė. Su WCF daug smagiau dirbasi.
Pamigruot norėtumėm, tačiau laiko stoka.. metodų ir servisų labai daug...
Kadangi viskas prasidejo nuo .NET 1.1 laikų, migruojant į 3.5 teko suktis kuo greičiau :)
Dėl WSE3, tai nieko ten nemalonaus, įgudus - gana patogus dalykas. Žinoma, WCF eilė irgi ateis, bet dar ne dabar.
Dėkui, už nuorodą, pamėginsiu... Klaida ne visai ta pati, bet gal susijusi.
Deja, nei vienas iš čia aprašytų metodų nepadėjo išspręst problemos.
Galvojam migruoti ant WCF.