У меня есть служба SOAP, размещенная в WCF, которую я могу использовать как из браузера, так и из моего SOAP-клиента в порядке при выполнении запросов HTTP GET, однако при выполнении любых запросов HTTP POST ответом является 404 Not Found.
Мой Web.config выглядит так:
<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>
Мой сервис определен в разметке с использованием файла .svc:
<%@ ServiceHost Language="C#" Debug="true" Service="Boca.WebServices.Billing.QBService" CodeBehind="QBService.svc.cs" %>
Опять же, я могу запустить свой сервис с помощью браузера и SOAP-клиента следующим образом, используя HTTP GET, но не с HTTP POST:
Что я делаю не так? Разве я не должен использовать разметку .svc и просто определить свой сервис в Web.config?
UPDATE:
Когда я "запускаю отладку" своего проекта WCF из VS 2010 с помощью IIS Express на порт localhost: 8181, HTTP ЗАДАВАЕТСЯ к службе. Только когда служба размещается через IIS, HTTP POST к службе отклоняется или не обнаруживается.