Несоответствие AddressFilter в EndpointDispatcher - msg с To
Любые идеи, как я исправляю это.. вызов службы через js
Сообщение с "http://MySite.svc/GetStateXML" не может быть обработано в приемнике из-за несоответствия AddressFilter в EndpointDispatcher. Убедитесь, что отправитель и получатель EndpointAddresses согласны
спасибо
Ответы
Ответ 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