Я получаю ссылку на объект, не установленную на экземпляр ошибки объекта в моей веб-службе WCF, которая использует webHttpBinding (soap 1.1 ). Я заметил, что если у вас есть входные параметры в определенном порядке, ошибка не возникает поднятый.
то есть
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:not="http://schemas.globalfoundries.com/NotificationService">
<soapenv:Header/>
<soapenv:Body>
<not:NotifyWorkflowItemUpdate>
<not:userIDs>testUserID</not:userIDs>
<not:taskID>testTaskID</not:taskID>
<not:taskType>testTaskType</not:taskType>
<not:status>testStatus</not:status>
<not:appID>testAppID</not:appID>
<not:message>testMessage</not:message>
</not:NotifyWorkflowItemUpdate>
</soapenv:Body>
</soapenv:Envelope>
Однако, если я изменяю порядок входных параметров в шаблоне запроса, я получаю вышеупомянутую ошибку. то есть (сообщение-заметка и параметры userID переключаются)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:not="http://schemas.globalfoundries.com/NotificationService">
<soapenv:Header/>
<soapenv:Body>
<not:NotifyWorkflowItemUpdate>
<not:message>testMessage</not:message>
<not:taskID>testTaskID</not:taskID>
<not:taskType>testTaskType</not:taskType>
<not:status>testStatus</not:status>
<not:appID>testAppID</not:appID>
<not:userIDs>testUserID</not:userIDs>
</not:NotifyWorkflowItemUpdate>
</soapenv:Body>
</soapenv:Envelope>
Почему это происходит? Сопоставляются ли параметры запроса с параметрами метода.Net по порядку, а не по именам? Есть ли атрибут, который я должен указать в сервисном контракте, чтобы сделать возможным сопоставление именованных параметров?