Не удается отладить службу WCF в Visual Studio

У меня есть проблема, которая очень раздражает...

Я создал службу WCF с помощью 3 простых методов. Служба работает нормально локально, на сервере разработки и на рабочем сервере.

Спустя 2 недели меня попросили добавить еще немного функциональности, поэтому я открыл решение и попытался собрать/отладить сервис ДО ВНЕСЕНИЯ КАКИХ-ЛИБО ИЗМЕНЕНИЙ, чтобы проверить его состояние.

К сожалению, после того, как я попробовал 7-8 различных решений, которые я нашел в Интернете, все еще не могу отладить его, и я все время получаю одну и ту же ошибку.

Ошибка: не удается получить метаданные с http://localhost:50930/StService.svc. Если это Windows ( R) Служба Communication Foundation, к которой у вас есть доступ, убедитесь, что вы включили публикацию метаданных по указанному адресу. Справку по включению публикации метаданных см. в документации MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=65455.

URI ошибки обмена метаданными WS: http://localhost:50930/StService.svc Метаданные содержат ссылку, которая невозможно разрешить: 'http://localhost:50930/StService.svc'. Тип содержимого application/soap+xml; charset=utf-8 не поддерживается службой http://localhost:50930/StService.svc.

Привязки клиента и службы могут не совпадать. Удаленный сервер возвратил ошибку: (415) Невозможно обработать сообщение, поскольку тип содержимого 'application/soap+xml; charset=utf-8» не был ожидаемым типом «text/xml; кодировка=utf-8'..

HTTP GET Error URI: http://localhost:50930/StService.svc Произошла ошибка при загрузке 'http://localhost:50930/StService.svc'. Запрос не выполнен со статусом HTTP 400: неверный запрос.

Я попытался отредактировать web.config (хотя на серверах разработки и живых серверах он одинаковый, за исключением подключений к БД), дал разрешения на каждую временную папку, на папку проекта, отключил и удалил любой брандмауэр или антивирус и т. д. Не могу сделать это работает...

Любые идеи?

Вот web.config по запросу:

<?xml version="1.0"?>
<configuration>
  <system.web>
      <customErrors mode="Off"/>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5"/>
    <caching>
      <sqlCacheDependency enabled="true">
        <databases>
          <add connectionStringName="PhotosSqlServer" name="PhotosSqlServer" pollTime="1000"/>
        </databases>
      </sqlCacheDependency>
    </caching>
  </system.web>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <!-- To avoid disclosing metadata information, set the values below to false 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>
    <bindings>
      <wsHttpBinding>
        <binding name ="wsMessage">
          <security mode ="Message">
            <message clientCredentialType ="Windows"/>
          </security>
        </binding>
      </wsHttpBinding>
      <netTcpBinding>
        <binding name="NetTcpBinding_IStService" maxReceivedMessageSize="5242880" maxConnections="10">
          <readerQuotas maxDepth="64" maxStringContentLength="5242880" maxArrayLength="16384"
            maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
          <security mode="None"></security>
        </binding>
      </netTcpBinding>
    </bindings>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
    <!--
        To browse web app root directory during debugging, set the value below to true.
        Set to false before deployment to avoid disclosing web app folder information.
      -->
    <directoryBrowse enabled="false"/>
  </system.webServer>
</configuration>

person wizard    schedule 07.05.2015    source источник
comment
Приложение WCF компилируется без проблем? Если да, то видите ли вы всплывающее окно тестового клиента WCF при его запуске?   -  person Alexandre Severino    schedule 07.05.2015
comment
Да, все решение построено без ошибок. Когда я запускаю отладку, всплывает WCF Client Tool, и через 1-2 секунды он отвечает ошибкой.   -  person wizard    schedule 07.05.2015
comment
Вы уверены, что на этом сетевом адресе/порте не запущена служба? Предоставьте нам свой App.config для приложения WCF.   -  person Alexandre Severino    schedule 07.05.2015
comment
Я отредактировал вопрос с помощью web.config   -  person wizard    schedule 07.05.2015
comment
Вы пытались вызвать службу из браузера и посмотреть, в чем реальная проблема: <serviceDebug includeExceptionDetailInFaults="true" />?   -  person Pablo Claus    schedule 07.05.2015
comment
Если я вызываю это из браузера, как iis-express, так и iis, я не получаю никакой ошибки, просто пустую страницу.   -  person wizard    schedule 08.05.2015


Ответы (1)


Внутри тегов <system.serviceModel> добавьте:

    <service name="YourAppNameSpace.StService">
    <endpoint address="" binding="wsMessage" bindingConfiguration="NetTcpBinding_IStService"
      contract="YourAppNameSpace.IStService" />
    <endpoint address="mex" binding="mexHttpBinding" bindingConfiguration=""
      contract="IMetadataExchange" />
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:50930/StService" />
      </baseAddresses>
    </host>
  </service>

Я не уверен в параметрах. Но вам наверняка не хватает service-endpoint информации в вашем App.config.

person Alexandre Severino    schedule 07.05.2015
comment
Неа. такая же ошибка. Однако я должен отметить, что он работал с этим web.config до 2 недель. - person wizard; 08.05.2015