Лучший способ построить сервис WCF с использованием данного сообщения мыла - PullRequest
0 голосов
/ 25 ноября 2018

Мне нужно создать сервис для данного сообщения SOAP ниже, мой клиент использует это мыльное сообщение для вызова моей новой службы WCF.

Я начинаю сборку wcf basicHTTPBinding.

Мне нужно знать, как создать сервис таким образом, чтобы гарантировать получение клиентских вызовов.

<soapenv:Envelope
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
  xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Header>
    <ctx:clientContext
      xmlns:ctx="http://ClientContext">
      <ctx:clientUserId>775</ctx:clientUserId>
    </ctx:clientContext>
    <To soapenv:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://myserverurl.com/Services/UpdateRequest.svc/soapService</To>
    <Action soapenv:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">updateRequestStatus</Action>
  </soapenv:Header>
  <soapenv:Body>
    <p20:updateRequestStatus xmlns:p20="http://com.myservice.update.ws">
      <requestId xmlns="">6699</requestId>
      <status xmlns="">Approved</status>
    </p20:updateRequestStatus>
  </soapenv:Body>
</soapenv:Envelope>

Я пытался внедрить такой сервис и опубликовать его для своего клиента, чтобы позвонитьЭто.произошла ошибка, когда клиент вызвал мою службу:

Описание ошибки ниже:

Сообщение с действием 'updateRequestStatus' не может быть обработано в получателе из-за несовпадения ContractFilter в EndpointDispatcher,Это может быть связано либо с несоответствием контракта (несоответствующие действия между отправителем и получателем), либо с несоответствием привязки / безопасности между отправителем и получателем.Убедитесь, что отправитель и получатель имеют один и тот же контракт и одну и ту же привязку (включая требования безопасности, например, Сообщение, Транспорт, Нет).

Любая помощь для решения этой проблемы.

Спасибо впродвинутый.

1 Ответ

0 голосов
/ 29 ноября 2018

Я исправляю этот случай, генерируя классы C # для данного WSDL.Он создаст интерфейс для этого WSDL с помощью этой команды: wsdl "путь к файлу wsdl", "путь к файлу xsd".Затем на основе сгенерированного класса я создаю службу WCF и реализую все необходимые методы для моей службы.

, исходя из этого, любой клиент имеет сообщение мыла, как указано выше, может использовать мою службу без каких-либо конфликтов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...