我正在將WSE3 Web服務移動到WCF。但客戶端是WSE3客戶端。使用MessageContract屬性時出現問題:異常 - >名稱空間'End'元素'Body''http://schemas.xmlsoap.org/soap/envelope/'期望
所有操作合同都會返回MessageContract
類的實例。這適用於2個操作,但對於同一個服務合同的一個操作,某種程度上失敗。錯誤是:
The signature or decryption was invalid.
當我看着WCF跟蹤文件中,我發現了以下內容:
The formatter threw an exception while trying to deserialize the message: Error in deserializing body of request message for operation 'MyOperationName'. End element 'Body' from namespace 'http://schemas.xmlsoap.org/soap/envelope/' expected. Found element 'MyOperationName' from namespace 'urn:MyProject:MyModule:2006:04:MyAuthorizationModule'.
我的觀察是,當我使用XmlRoot
屬性來裝點響應級(而不是使用MessageContract
屬性),我沒有得到這個例外。但是,響應對象不能被反序列化。即我可以在輸入跟蹤中看到XML響應,但由於預期的XML結構不匹配,服務調用在客戶端返回null
。
的MessageContract
類只有一個返回其被飾以XmlRoot
屬性的另一個類的實例公開屬性(MessageBodyMember
)。這個類(用xmlRoot
裝飾)有一個屬性,它給出了Collection
某個實體類的對象,它具有XmlElement
屬性。
我需要檢查/驗證哪些東西? 如果需要,我可以提供課程代碼片段。