Toutes les idées comment je corrige cela .. appeler un service via js
Le message avec To 'http: //MySite.svc/GetStateXML' ne peut pas être traité sur le destinataire en raison d'une incompatibilité AddressFilter sur EndpointDispatcher. Vérifiez que l'adresse de l'expéditeur et celle du destinataire correspondent
merci
Je viens de le découvrir également en consultant un exemple du livre Learning WCF de Bustamante .nom attribut pour mon noeud final plutôt que l'attribut adresse. Une fois que j'ai résolu le problème, les choses ont fonctionné… J'ai trouvé un autre poste qui suggérait d'utiliser:
[ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)]
sur la classe d'implémentation, qui a fonctionné mais n'était pas la cause principale.
La ligne du bas semble être: assurez-vous que vos configurations client et serveur correspondent.
L'erreur répertoriée ci-dessous indique que le service Web implémente l'adressage WS.
"Le message avec To '' ne peut pas être traité sur le destinataire en raison d'une incompatibilité AddressFilter sur EndpointDispatcher. Vérifiez que les adresses d'expéditeur et de destinataire du destinataire correspondent"
Incluez les éléments suivants dans vos en-têtes SOAP pour accéder au service Web:
<soap:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsa:To>http://example.com/service</wsa:To>
</soap:Header>
J'ai eu cette erreur alors que j'utilisais webHttpBinding
.
Je l'ai résolu en ajoutant
<endpointBehaviors>
<behavior name="EndPointBehavior">
<enableWebScript/>
</behavior>
</endpointBehaviors>
sous <behaviors>
et en mettant behaviorConfiguration="EndPointBehavior"
dans ma endpoint
avec binding="webHttpBinding"
.
Configuration complète:
<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>
Je sais que cela semble idiot, mais pour tous ceux qui ont cette erreur, vérifiez votre adresse. Nous obtenions cette erreur parce que nous avions une double barre oblique où il ne devrait y en avoir qu’une seule.
http: //localhost//servicename.svc
L'adresse ci-dessus a causé le problème.
http: //localhost/servicename.svc
N'a pas présenté le problème.
Nous créions dynamiquement l’adresse complète à partir de parties de données lues à partir de formulaires Windows et d’une base de données. L'utilisateur saisissait /servicename.svc au lieu de servicename.svc
J'ai eu le même genre de problème, juste pour être complet:
la configuration que je devais utiliser (pour la partie repos) était la suivante:
il existe une configuration pour le comportement service et le comportement endpoint
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="myServiceBehaviour">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="webEndpointBehaviour">
<webHttp />
</behavior>
</endpointBehaviors>
</behaviors>
<services>
<service name="My.Service" behaviorConfiguration="myServiceBehaviour">
<endpoint address="" binding="webHttpBinding" contract="My.IService" behaviorConfiguration="webEndpointBehaviour">
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
J'ai eu ce problème dans mon environnement de développement pour un service Web hébergé dans IIS. Résolu le problème en accédant à «Gestionnaire des services Internet» et en ajoutant une liaison au nom d'hôte faisant l'objet de la plainte dans le message d'erreur.
Dans mon cas, j'ai une application de bibliothèque de service WCF qui est un hôte de service RESTFul et Windows. J'ai eu un problème avec Host App.Config. S'il vous plaît voir ci-dessous
WCF Rest Service App.Config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<compilation debug="true" />
</system.web>
<!-- When deploying the service library project, the content of the config file must be added to the Host's
app.config file. System.Configuration does not support config files for libraries. -->
<system.serviceModel>
<services>
<service name="MyService.DocumentWCFRESTService" behaviorConfiguration="defaultServiceBehavior">
<!-- Service Endpoints -->
<!-- Unless fully qualified, address is relative to base address supplied above -->
<endpoint address="http://localhost:2023/DocumentWCFRESTService"
binding="webHttpBinding" behaviorConfiguration="webBehaviorConfiguration"
contract="MyService.IDocumentWCFRESTService" >
<!--
Upon deployment, the following identity element should be removed or replaced to reflect the
identity under which the deployed service runs. If removed, WCF will infer an appropriate identity
automatically.
-->
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<!-- Metadata Endpoints -->
<!-- The Metadata Exchange endpoint is used by the service to describe itself to clients. -->
<!-- This endpoint does not use a secure binding and should be secured or removed before deployment -->
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
<Host>
<baseAddresses>
<add baseAddress = "http://localhost:8733/Design_Time_Addresses/Document.Server.WCFREST.Service/DocumentWCFRESTService/" />
</baseAddresses>
</Host>
</service>
</services>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
<bindings> </bindings>
<behaviors>
<serviceBehaviors>
<behavior name="defaultServiceBehavior">
<!-- To avoid disclosing metadata information,
set the values below to false before deployment -->
<serviceMetadata httpGetEnabled="True" httpGetUrl="http://localhost:2023/DocumentWCFRESTService"/>
<!-- To receive exception details in faults for debugging purposes,
set the value below to true. Set to false before deployment
to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="webBehaviorConfiguration">
<webHttp />
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Windows Service Host App.Config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding name="webHttpBindingConfiguration" maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
</binding>
</webHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="documentWCFRESTServiceBehavior">
<!-- To avoid disclosing metadata information,
set the values below to false before deployment -->
<serviceMetadata httpGetEnabled="True" httpGetUrl="http://localhost:2023/DocumentWCFRESTService"/>
<!-- To receive exception details in faults for debugging purposes,
set the value below to true. Set to false before deployment
to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="webBehaviorConfiguration">
<webHttp />
</behavior>
</endpointBehaviors>
</behaviors>
<services>
<service name="MyService.DocumentWCFRESTService" behaviorConfiguration="documentWCFRESTServiceBehavior">
<endpoint address="http://localhost:2023/DocumentWCFRESTService" behaviorConfiguration="webBehaviorConfiguration"
binding="webHttpBinding" bindingConfiguration="webHttpBindingConfiguration"
contract="MyService.IDocumentWCFRESTService"></endpoint>
</service>
</services>
</system.serviceModel>
</configuration>
Ajoutez l'attribut webHttp
à votre configuration:
endpointBehaviors
behavior name ="yourServiceContract"
webHttp automaticFormatSelectionEnabled ="true "
behavior