Question

Je reçois une référence d'objet non définie sur une instance d'erreur d'objet dans mon service Web WCF qui utilise Webhttpbinding (SOAP 1.1) J'ai remarqué que si vous avez les paramètres d'entrée dans un certain ordre, l'erreur ne se déclenche pas..

I.e.

<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>

Toutefois, si je modifie l'ordre des paramètres d'entrée dans le modèle de demande, j'obtiens l'erreur susmentionnée.I.E. (NOTE Les paramètres du message et des utilisateurs sont commutés)

<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>

Pourquoi cela se produit-il?Les paramètres de demande sont-ils mappés sur les paramètres de méthode .NET via la commande et non par les noms?Existe-t-il un attribut que je dois spécifier sur le contrat de service pour faire la cartographie du paramètre nommé possible?

Était-ce utile?

La solution

Vous devez utiliser xmlSerializerformat dans votre interface de service WCF.

[ServiceContract, XmlSerializerFormat]
public interface IGoodMessageService
{
    ...
}

Problème et solution sont expliqués dans ce lien: HTTP: //nimke.blogspot.com.tr/2012/03/serialization-Ordinateur-caus-problems.html

Autres conseils

Le schéma XML de votre message SOAP spécifie la commande.Dans XML, l'ordre des éléments d'élément et la WCF valident le XML contre le schéma.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top