WCF. Должен ли клиент вести себя так же, как конечная точка? - PullRequest
0 голосов
/ 30 марта 2011

У меня есть следующая конфигурация конечной точки WCF:

      <service behaviorConfiguration="MyNamespace.ContainerManagementServiceBehavior"
    name="MyNamespace.ContainerManagementService">
    <endpoint address="" binding="basicHttpBinding"
       name="ContainerManagementbasicHttpEndpoint" contract="MyNamespace.IContainer"/>                  
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service>      
   <behaviors>      
    <behavior name="MyNamespace.ContainerManagementServiceBehavior">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="false" />
    </behavior>
</behaviors>

Вот моя конфигурация клиента:

<client>
  <endpoint address="http://localhost:3227/Services/ContainerManagementService.svc"
    binding="basicHttpBinding" 
    contract="MyNamespace2.IAQSIDMService" name="externalService" />
</client>

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

var svc = new AQSIDMServiceClient(Constants.External_Service_ConfigurationName, serviceAddress);

Когда я вызываю конечную точку, я получаю следующее сообщение об ошибке:

{"Сообщение с действием 'http://IMyService/CreateContainer' не может быть обработано в приемнике из-заНесовпадение ContractFilter в EndpointDispatcher. Это может быть связано либо с несоответствием контракта (несовпадающие действия между отправителем и получателем), либо с несоответствием привязки / безопасности между отправителем и получателем. Убедитесь, что отправитель и получатель имеют один и тот же контракт и одну и ту же привязку (включая требования безопасности, например, Message, Transport, None). "}

Может ли это быть из-за того, что мой клиент НЕ имеет такое же поведение serviceBehavior, что и конечная точка?Могу ли я что-то упустить еще?

Спасибо!

1 Ответ

0 голосов
/ 30 марта 2011

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

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

...