tengo WCF alojado servicio SOAP, que soy capaz de golpear desde el navegador, así como de mi cliente SOAP bien al hacer peticiones HTTP GET, sin embargo, al hacer cualquier Solicitudes HTTP POST, la respuesta es un 404 No encontrado..NET 4 WCF Servicio de SOAP HTTP POST devuelve el error 404 que no se encuentran
Mi Web.config se parece a:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<!-- 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="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" />
<bindings>
<wsHttpBinding>
<binding>
<security mode="Transport">
<transport clientCredentialType="Certificate" />
</security>
<readerQuotas maxDepth="15" maxStringContentLength="524288" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
</binding>
</wsHttpBinding>
<basicHttpBinding>
<binding>
<readerQuotas maxDepth="15" maxStringContentLength="524288" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
</binding>
</basicHttpBinding>
</bindings>
</system.serviceModel>
Mi servicio se define en el marcado mediante el archivo .svc como:
<%@ ServiceHost Language="C#" Debug="true" Service="Boca.WebServices.Billing.QBService" CodeBehind="QBService.svc.cs" %>
Una vez más, puedo golpear a mi servicio utilizando el navegador y un cliente SOAP como sigue utilizando un HTTP GET, pero no con HTTP POST:
¿Qué estoy haciendo mal? ¿No debería usar el marcado .svc y simplemente definir mi servicio en Web.config?
ACTUALIZACIÓN:
Cuando mi proyecto WCF "depuración empezar" desde dentro de VS 2010 mediante IIS Express en un localhost: 8181 puerto, los envíos HTTP a los trabajos de mantenimiento. Solo cuando el servicio se aloja a través de IIS, el HTTP POST del servicio se rechaza o no se encuentra.
La cuestión es que hacer un HTTP POST resultados en un 404 mientras que haciendo un HTTP GET funciona. Además, me he dado cuenta de que si depuro mi VS 2010 WCF Project utilizando IIS Express desde VS 2010, los HTTP POSTS para el servicio funcionan bien.Parece que solo cuando estoy alojado a través de IIS veo este comportamiento. –
Creo que sería más útil verlo como "recuperar los metadatos funciona pero hacer una solicitud de servicio falla con un 404". Supongo que está haciendo los GET utilizando Add Service Reference o un navegador y los POST que utilizan una solicitud pensaban que el proxy generado es correcto. –
Además, ¿cuántos contratos de servicio implementa su servicio? –