Запуск хоста службы WCF внутри браузера - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть пример проекта для службы ReST в WCF.И я просто пытаюсь отладить это.Однако когда я запускаю отладку, служба всегда запускается внутри инструмента «Тестовый клиент WCF».Вместо этого я ищу хост для запуска внутри браузера, чтобы я мог загрузить файл WSDL.

Я попытался удалить «Параметры запуска» в свойствах проекта.Затем вместо тестового клиента WCF служба открывается в автономном хосте WCF.Если я пытаюсь использовать почтальон для вызова службы с включенным WCF Self Host, то выполнение никогда не достигает кода, а просто выдает 400 ошибок.

Я также попытался подключить отладчик к Chrome, но это ничего не дало.Я понятия не имею, что мне не хватает в настройках или параметрах Visual Studio.Я ожидаю, что при запуске отладки в браузере откроется новая вкладка с базовым адресом службы.

Ниже мой текущий файл конфигурации.

  <system.web>
<compilation debug="true" />
<membership defaultProvider="ClientAuthenticationMembershipProvider">
  <providers>
    <add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" />
  </providers>
</membership>
<roleManager defaultProvider="ClientRoleProvider" enabled="true">
  <providers>
    <add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" />
  </providers>
</roleManager>
</system.web>
 <system.serviceModel>
<services>
  <service name="WellacyMobileAPI.Service">
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:8733/WellacyMobileAPI/" />
      </baseAddresses>
    </host>
    <endpoint address="" binding="basicHttpBinding" contract="WellacyMobileAPI.IService">
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>
  </service>
</services>
<behaviors>
  <endpointBehaviors>
    <behavior name="serviceBehavior">
      <webHttp />
    </behavior>
  </endpointBehaviors>
  <serviceBehaviors>
    <behavior name="serviceBehavior">
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
      <serviceAuthorization serviceAuthorizationManagerType="WellacyMobileAPI.RestAuthorizationManager, WellacyMobileAPI" />
    </behavior>
    <behavior name="">
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="false" />
    </behavior>
  </serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
 </system.serviceModel>

1 Ответ

0 голосов
/ 20 ноября 2018

Причина, по которой тестовый клиент WCF запускается по умолчанию при отладке службы WCF, заключается в том, что браузер не поддерживает сообщение SOAP. это означает, что не все службы WCF являются службами WCF в http-режиме, поэтому браузер не может запустить другую службу WCF, которая взаимодействует с клиентом через другую привязку и формат сообщения.
https://docs.microsoft.com/en-us/dotnet/framework/wcf/wcf-and-aspnet-web-api

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...