Подтвердить что ты не робот

Несоответствие AddressFilter в EndpointDispatcher - msg с To

Любые идеи, как я исправляю это.. вызов службы через js

Сообщение с "http://MySite.svc/GetStateXML" не может быть обработано в приемнике из-за несоответствия AddressFilter в EndpointDispatcher. Убедитесь, что отправитель и получатель EndpointAddresses согласны

спасибо

4b9b3361

Ответ 1

Посмотрите <webHttp />

<services>
      <service name="SimpleService.SimpleService" behaviorConfiguration="serviceBehaviour">
        <endpoint address="" binding="webHttpBinding" contract="SimpleService.ISimpleService" behaviorConfiguration="web">
        </endpoint>
        <endpoint address="mex"
              binding="mexHttpBinding"
              contract="IMetadataExchange">
        </endpoint>
      </service>
    </services>

....
....

<endpointBehaviors>
        <behavior name="web">
          <webHttp />
        </behavior>
</endpointBehaviors>

Ответ 2

Я просто столкнулся с этим, просматривая пример в книге Learning WCF от Bustamante. Я использовал редактор конфигурации WCF для заполнения моей конфигурации на моем хосте и поместил значение в атрибут name для моей конечной точки, а не для атрибута address. Как только я это исправил, все сработало. Я нашел еще одно сообщение, которое предложило использовать:

[ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)] 

в классе реализации, который работал, но не был основной причиной.

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

Ответ 3

Нижеприведенная ошибка указывает, что веб-служба реализует WS-Addressing.

"Сообщение с To '' не может быть обработано в приемнике из-за несоответствия AddressFilter в EndpointDispatcher. Убедитесь, что адреса отправителя и получателя EndpointAddresses совпадают.

Включите следующие заголовки SOAP для доступа к веб-службе:

<soap:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsa:To>http://example.com/service</wsa:To>
</soap:Header>

Ответ 4

Я получил эту ошибку, когда использовал webHttpBinding.

Я разрешил его, добавив

<endpointBehaviors>
  <behavior name="EndPointBehavior">
    <enableWebScript/>
  </behavior>
</endpointBehaviors>

под <behaviors> и установите behaviorConfiguration="EndPointBehavior" в моей endpoint с помощью binding="webHttpBinding".

Полная конфигурация:

<behaviors>
  <serviceBehaviors>
    <behavior name="ServiceBehavior">
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
      <serviceDebug includeExceptionDetailInFaults="false"/>
    </behavior>
  </serviceBehaviors>
  <endpointBehaviors>
    <behavior name="EndPointBehavior">
      <enableWebScript/>
    </behavior>
  </endpointBehaviors>
</behaviors>

<services>
  <service name="WcfService1.Service1" behaviorConfiguration="ServiceBehavior">
    <endpoint address="" 
              binding="webHttpBinding" 
              contract="WcfService1.IService1" 
              behaviorConfiguration="EndPointBehavior">
    </endpoint>
    <endpoint address="mex" 
              binding="mexHttpBinding" 
              contract="IMetadataExchange">
    </endpoint>
  </service>
</services>

Ответ 5

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

http://localhost//servicename.svc

Вышеуказанный адрес вызвал проблему.

http://localhost/servicename.svc

Не было проблем.

Мы динамически создавали полный адрес из частей данных, считываемых из форм Windows и базы данных. Пользователь вводил /servicename.svc вместо servicename.svc

Ответ 6

У меня была эта проблема в моей среде разработки для веб-службы, размещенной в IIS. Решив его, перейдя в "Диспетчер IIS" и добавив привязку к имени хоста, которое было вызвано в сообщении об ошибке.

Ответ 7

Добавить webHttp атрибут в вашу конфигурацию:

endpointBehaviors
        behavior name ="yourServiceContract"
          webHttp  automaticFormatSelectionEnabled ="true "
        behavior