Как изменить базовый адрес в службе рабочих процессов WF4.0?

#wcf #configuration #workflow-foundation-4

#wcf #конфигурация #рабочий процесс-foundation-4

Вопрос:

Существует библиотека службы рабочего процесса, доступная как служба WFC. Я пытаюсь изменить его базовый адрес через файл web.config. Я преуспел в изменении относительного адреса конечных точек, но мне также нужно изменить базовый адрес. Как я могу это сделать?

Вот моя конфигурация:

 <?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
  <system.serviceModel>
    <services>
      <service name="MyService" behaviorConfiguration="ServiceBehaviors">
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:777/"/>
          </baseAddresses>
        </host>
        <endpoint address=""
                  binding="basicHttpBinding"
                  contract="IMyService" />
        <endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" />
      </service>
    </services>    
    <behaviors>
      <serviceBehaviors>
        <behavior name="ServiceBehaviors">
          <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
          <serviceMetadata httpGetEnabled="false"/>
          <!-- 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="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <bindings>
      <mexHttpBinding>
      </mexHttpBinding>
      <basicHttpBinding>
        <binding>
          <security mode="None"/>
        </binding>
      </basicHttpBinding>
    </bindings>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>
  

Ответ №1:

Если ваш хостинг в Visual Studio, вам может потребоваться отредактировать свойства вашего проекта службы WCF.

В обозревателе решений

  • перейдите к вашему проекту службы WCF
  • щелкните правой кнопкой мыши и выберите Свойства
  • выберите вкладку Веб
  • в разделе Серверы выберите конкретный порт и измените виртуальный путь и / или порт

Ответ №2:

Учитывая, что вы используете web.config, я предполагаю, что вы размещаете это внутри, если IIS прав?

Если это так, IIS отвечает за базовый адрес. Вы создаете там свои виртуальные папки, и они в сочетании с именем компьютера образуют базовый адрес. Все, что вы можете указать в web.config, — это последний относительный бит.

Комментарии:

1. Прямо сейчас я размещаю его в Visual Studio. Я собираюсь использовать службу Windows при развертывании в рабочей среде.

Ответ №3:

Здесь приведено несколько примеров ручной настройки конечных точек (Microsoft samples for WF amp; WCF 4.0). Проверьте наличие этих:

  • WF Basic Execution ManagementEndpoint
  • WF Basic Execution CreationEndpoint
  • WF Basic Execution ResumeBookmarkEndpoint