Здравствуйте, я знаю, что эта тема может показаться знакомой, но я могу сказать вам, что после целого дня поиска связанных вопросов я пришел за помощью, потому что ни одно из предложенных решений не сработало для меня.< /эм>
Я создал приложение-службу REST WCF только с одной службой, которая работает локально на моем компьютере, а также с клиентом ASP.NET WebForm, который его использует (оба на отдельном экземпляре VS 2013 на Windows 7).
Все операции сервиса работают идеально.
- Операции GET можно успешно протестировать в браузере.
- Операции POST можно успешно протестировать с помощью расширения браузера Postman.
Проблема: когда я пытаюсь получить доступ к этой службе, используя ссылку на службу на клиенте, например:
AuthorRESTServiceClient service = new AuthorRESTServiceClient("AuthorServiceBinding");
string value = service.Test(); //GET operation that should return a "Hello World"
затем клиент выдает EndpointNotFoundException
:
Не было прослушивающей конечной точки на http://localhost:49414/AuthorRESTService.svc, которая могла бы принять сообщение. Это часто вызвано неверным адресом или действием SOAP. Дополнительные сведения см. в разделе InnerException, если он присутствует.
И содержит внутренний WebException
:
Удаленный сервер вернул ошибку: (404) Not Found
Вот частичный код Web.config сервера WCF Service Application:
<system.serviceModel>
<services>
<service name="WCFAuthorEntryService.AuthorRESTService">
<endpoint address=""
binding="webHttpBinding"
contract="WCFAuthorEntryService.IAuthorRESTService"
behaviorConfiguration="web">
</endpoint>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="web">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<protocolMapping>
<add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
А вот частичный код Web.config клиента ASP.NET Webform.
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="AuthorServiceBinding"/>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:49414/AuthorRESTService.svc"
binding="basicHttpBinding"
bindingConfiguration="AuthorServiceBinding"
contract="AuthorServiceReference.IAuthorRESTService"
name="AuthorServiceBinding"/>
</client>
</system.serviceModel>
Что я делаю не так? Любая помощь приветствуется.