Ошибка HTTP 500 на веб-службе WSE1.0 POST для WSE2.0
У меня есть веб-сервис, который использует Web Service Extensions 2.0 для получения сообщения XML от веб-сервиса WSE1.0. У меня нет контроля над службой WSE1.0, и они не могут сказать мне, в чем на самом деле ошибка.
Мне удалось настроить некоторые диагностики на основе этого: http://msdn.microsoft.com/en-us/library/bb885203.aspx
Основная ошибка:
System.Web.Services.Asmx Information: 0 : Calling XmlSerializer [Read Request]
Method: Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer#6503226::Deserialize(System.Web.Services.Protocols.SoapServerProtocol+SoapEnvelopeReader#18307385=.., (null))
Caller: System.Web.Services.Protocols.SoapServerProtocol#58529038::ReadParameters()
ProcessId=1656
LogicalOperationStack=
ThreadId=1
DateTime=2009-09-29T15:13:13.6703985Z
Timestamp=1754775019015
System.Web.Services.Asmx Information: 0 : Return from XmlSerializer [Read Request]
Caller: System.Web.Services.Protocols.SoapServerProtocol#58529038::ReadParameters()
ProcessId=1656
LogicalOperationStack=
ThreadId=1
DateTime=2009-09-29T15:13:13.6703985Z
Timestamp=1754775027350
System.Web.Services.Asmx Information: 0 : Calling SoapExtension
Method: Microsoft.Web.Services2.WebServicesExtension#540121::ProcessMessage(System.Web.Services.Protocols.SoapMessageStage#8=AfterDeserialize)
Caller: System.Web.Services.Protocols.SoapServerMessage#4861097::RunExtensions(System.Web.Services.Protocols.SoapExtension[]#43749873=[1], System.Boolean#1=True)
ProcessId=1656
LogicalOperationStack=
ThreadId=1
DateTime=2009-09-29T15:13:13.7016473Z
Timestamp=1754775128848
System.Web.Services.Asmx Information: 0 : Return from SoapExtension
Caller: System.Web.Services.Protocols.SoapServerMessage#4861097::RunExtensions(System.Web.Services.Protocols.SoapExtension[]#43749873=[1], System.Boolean#1=True)
ProcessId=1656
LogicalOperationStack=
ThreadId=1
DateTime=2009-09-29T15:13:13.7016473Z
Timestamp=1754775136909
System.Web.Services.Asmx Error: 0 : Exception caught in System.Web.Services.Protocols.SyncSessionlessHandler#54078809::CoreProcessRequest.
System.Web.Services.Protocols.SoapHeaderException: SOAP header path was not understood.
ProcessId=1656
LogicalOperationStack=
ThreadId=1
DateTime=2009-09-29T15:13:13.7016473Z
Timestamp=1754775137949
System.Web.Services.Asmx Error: 0 : Exception Details:
System.Web.Services.Protocols.SoapHeaderException: SOAP header path was not understood.
at System.Web.Services.Protocols.SoapHeaderHandling.SetHeaderMembers(SoapHeaderCollection headers, Object target, SoapHeaderMapping[] mappings, SoapHeaderDirection direction, Boolean client)
at System.Web.Services.Protocols.SoapServerProtocol.CreateServerInstance()
at System.Web.Services.Protocols.WebServiceHandler.Invoke()
at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()
ProcessId=1656
LogicalOperationStack=
ThreadId=1
DateTime=2009-09-29T15:13:13.7016473Z
Timestamp=1754775143263
1 ответ
Решение
WSE1.0 и WSE2.0 не совместимы. Вы можете использовать любую из версий WSE независимо от.NET Framework, просто используя соответствующую библиотеку.