VS2012 Добавить ссылку на службу, не обновляя файл конфигурации

Я создал новую службу WCF для IIS, используя webHttpBinding, который в настоящее время запущен на IIS Express на моей машине разработки и когда я пытаюсь "Добавить ссылку на службу", служба правильно построена, и файл Reference.cs выглядит нормально, но файлы web.config или app.config не обновляются.

Никаких предупреждений или сообщений об ошибках не получено.

Оба сервиса и клиент нацелены на .Net 4.5.

Конфигурация службы

  <system.serviceModel>
    <bindings>
      <webHttpBinding>
        <binding name="webInteropSecureBinding" allowCookies="false" maxBufferPoolSize="2097152" maxBufferSize="2097152" maxReceivedMessageSize="2097152">
          <security mode="Transport" />
        </binding>
      </webHttpBinding>
    </bindings>
    <services>
      <service name="PsmDataProvider.PsmProvider" behaviorConfiguration="SecureRest">
        <clear />
        <endpoint address="" binding="webHttpBinding" bindingConfiguration="webInteropSecureBinding" name="PsmProvider" contract="PsmDataProvider.IPsmProvider" listenUriMode="Explicit" behaviorConfiguration="webHttpBehavior" />
        <endpoint address="mex" binding="mexHttpsBinding" name="mex" contract="IMetadataExchange" listenUriMode="Explicit" />
        <host>
          <baseAddresses>
            <add baseAddress="https://localhost:44300/PsmProvider/" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="SecureRest">
          <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="webHttpBehavior">
          <webHttp />
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
  </system.serviceModel>

Конфигурация клиента

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
</configuration>

Справочник по обслуживанию клиентов

enter image description here

После некоторого исследования я нашел эти вопросы StackOverflow

Вопрос 1

Вопрос 2

Вопрос 3

И этот пост

Сообщение в блоге

Каждый из вышеперечисленных ссылок относится к той же проблеме, что и в случае, если я не выполнил флаг "Повторное использование типов в ссылках".

enter image description here

Проблема в том, что проблема не устранена. Я пробовал обновлять и удалять и воссоздавать ссылку на службу, но никогда не обновляет файл конфигурации.

Вопрос

Это проблема с конфигурацией на стороне сервера? Или это проблема с клиентской стороной? Как изменить либо так, чтобы генерация прокси работала так, как ожидалось?

Ответ 2

Удалите maxBufferPoolSize="2097152" maxBufferSize="2097152" из вашего файла web.config. Затем попробуйте обновить свою услугу. Убедитесь, что ваши привязки правильно указаны.

Ответ 3

У меня снова была проблема с VS2012.

У меня есть набор конфигураций Test, PreProduction и Production web.config, я мог бы использовать "Преобразование предварительного просмотра" и видеть, что VS2012 исправлял мой "web.config" с соответствующими настройками..

Preview

... но... когда я развернулся, ну, похоже, он просто включил файл по умолчанию "web.config" без каких-либо изменений.

Причина в том, что VS2012, похоже, испортил его конфигурации, и в диалоговом окне "Публикация" неожиданно моя конфигурация PreProduction была связана с Debug. Да?

Publish

Изменение этого параметра из "Отладки" в "PreProduction" исправило проблему для меня.

Или, по крайней мере, это подтолкнуло меня к дальнейшему шагу, но у меня все еще возникают проблемы с VS2012, которые испортят мои имена конфигурации, когда он пытается развернуть.

Deploy

(Десятый вздох.)

В настоящее время загружается VS2013. Надеюсь, этот выпуск будет менее затруднительным.

Ответ 4

В моем случае это было вызвано неправильным параметром привязки на стороне веб-службы.

binding.ReliableSession.InactivityTimeout = TimeSpan.Maximum;

После этого установите значение System.TimeSpan(0, 10, 0); конфигурация привязки создается в файле web.config.