Mal by som zavolať webovú službu v mojej aplikácii C #. Keď pridám odkaz na službu v službe Visual Studio na konzumáciu služby, v situácii výnimky dostanem túto správu:
Na zasielanie správ SOAP je potrebná hlavička obsahu typu HTTP a žiadna našlo sa.
Ale keď pridám odkaz na web, je to správabohatší a ľahko pochopiteľný problém. Poslednou časťou tejto správy je podniková chybová správa generovaná službou. Bol mi poskytnutý neplatný parameter tokenu autentifikácie pre túto službu, takže sa táto chybová správa vráti:
Klient našiel typ obsahu odpovede "", ale očakával / a text / xml.
Žiadosť zlyhala s chybovou správou:
--
WEBOVÁ SERVISOVÁ CHYBA: UNAUTHENTICATED_ACCESS
Bol som uprednostňovaný používať prístup k "služobnému referendu", ale teraz som na pochybách. Existuje spôsob, ako zlepšiť tento druh výnimiek alebo zaznamenať surovú odpoveď pomocou "servisnej referencie"?
odpovede:
1 pre odpoveď č. 1Myslím, že prvá správa je oveľa jasnejšia.
To vám hovorí presne, čo je problém, čo je hlavička HTTP Content-Type chýba v odpovedi služby. Hoci táto hlavička nie je povinná, špecifikácie HTTP hovoria, že by ste ju mali používať (od tu):
Každá správa HTTP / 1.1 obsahujúca subjekt-orgán BY MALA zahŕňať a Pole hlavičky Content-Type, ktoré definuje typ média v danom telese.
Spoločnosť Microsoft samozrejme začlenila do svojich nástrojov generovania proxy predpoklad, že táto hlavička bude vždy prítomná.
A nie, nemali by ste používať WebReference. Je to z .net 1.1