pondělí 15. listopadu 2010

Chyba WCF "An error occurred when verifying security for the message."

Vrátím se ještě k předchozímu příspěvku, kde jsem popisoval UserNamePasswordValidator při ověřování klienta ve WCF službě. Setkal jsem se totiž s jedním problémem při přesunu na testovací server, který mi zabral pár hodin zkoumání.
Nastavil jsem na testovacím serveru vše potřebné včetně certifikátu. Po spuštění klienta jsem ale neustále dostával tu samou nic neříkající chybovou zprávu "An error occurred when verifying security for the message.". Pátral jsem po webu, co by to mohlo být. Zhruba 90% všech nalezených řešení, spojených s touto chybou, se týkalo špatně nastaveného času mezi klientem a serverem - defaultně se toleruje odchylka max. 5 minut, ale dá se pomocí konfigurace WCF změnit nastavením MaxClockSkew. Toto ale nebyl můj případ, jelikož hodiny byli na obou stranách komunikace synchronizované automaticky a nerozcházely se.
Pak jsem narazil na jeden příspěvek, který řešil stejný problém, ale příčina chyby nebyla v čase nýbrž ve velikosti zprávy. To mě přivedlo na myšlenku, že ta chyba může být vlastně libovolná a chybová zpráva neodpovídá skutečné příčině chyby. A měl jsem pravdu. Po chvilce laborování jsem našel špatně nastavené připojení do databáze, takže při ověřování klienta se nepodařilo připojit k SQL serveru a přitom se vygenerovala tato nic neříkající chyba.
Takže jaký je závěr? Dokud není sestaveno spojení, tak nelze věřit plně chybovým zprávám. Vypadá to, že někdy se některé chyby spolknou a k vám se dostane až nějaká další chyba, která při sestavování komunikace vznikla.
I programátoři jsou jen lidé, i když ne každý tomu věří ;-)

Žádné komentáře:

Okomentovat