J'ai un service WCF hébergé sous IIS, derrière un équilibreur de charge. SSL est déchargé sur le LB, puis le service est appelé en HTTP simple.Point de terminaison SOAP via HTTPS renvoie 400 Demande incorrecte
J'ai réussi à faire fonctionner le point de terminaison REST du service, mais je n'arrive pas à faire en sorte que le point de terminaison SOAP affiche la page wsdl. Lors de l'appel https://domain/Service.svc/soap?wsdl
, le navigateur reçoit une réponse 400 Bar Request. J'ai aussi inspecté le svclog et l'erreur est There is a problem with the XML that was received from the network. See inner exception for more details.
ce qui signifie qu'il m'attendait à faire un POST
au lieu de GET
et d'envoyer un XML au-dessus.
Snippets des configs:
<bindings>
<basicHttpBinding>
<binding name="basicBinding" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
<security mode="Transport"></security>
<readerQuotas maxStringContentLength="2147483647" />
</binding>
</basicHttpBinding>
<webHttpBinding>
<binding name="webBinding" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
<security mode="Transport"></security>
</binding>
</webHttpBinding>
</bindings>
<services>
<service behaviorConfiguration="MyServiceBehavior" name="Namespace.Service">
<endpoint address="" behaviorConfiguration="MyRESTBehavior" binding="webHttpBinding" bindingConfiguration="webBinding" name="REST" contract="Namespace.IService" />
<endpoint address="https://domain/Service.svc/soap" binding="basicHttpBinding" bindingConfiguration="basicBinding" name="SOAP" contract="Namespace.IService" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceBehavior">
<serviceMetadata httpGetEnabled="false" httpsGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
<dataContractSerializer maxItemsInObjectGraph="6553600" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="MyRESTBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
J'ai essayé d'utiliser wsHttpBinding aussi, mais le seul résultat différent devenais 401
s à la place. Toutes les directions ont apprécié.
cela ne fonctionne pas pour moi ... –