Как развернуть мою службу WCF на IIS 6.0?

Я совершенно новичок в WCF и развертывание услуг. У меня возникли проблемы с настройкой службы на IIS 6.0.

мне нужны точные шаги для развертывания моего WCF служба на IIS 6.0.

Примечание: я создал WCF приложения службы...

Итак, каковы точные шаги, которые мне нужно выполнить для развертывания моей службы wcf на IIS 6.0?

1 ответов


у вас есть в основном два варианта, я считаю:

Вариант 1 - " bin " deploy (предпочтительный вариант)

  1. скомпилируйте службу WCF в DLL (библиотеку классов)
  2. создать веб-сайт в IIS6
  3. скопируйте DLL WCF в.\bin папку
  4. создать *.svc файл на этом веб-сайте
  5. добавить web.config в папке веб-сайта, чтобы определить конечные точки и службу конфигурация и т. д.

теперь ваша служба WCF будет доступна по базовому адресу веб-сайта, а также по имени , например,

http://myserver/someweb/Myservice.svc

код *.svc будет выглядеть примерно так:

<%@ ServiceHost Language="C#" Debug="true" 
    Service="WCF_Simple_Service.HelloIndigoService"  %>

на Service= attributes обозначает класс, реализующий сервис-полный с его пространством имен.

Вариант 2-поместите материал в App_Code

  1. создать сайт в Для iis6
  2. поместите все связанные с WCF *.cs файлы непосредственно в .\App_Code папку
  3. создать *.svc файл на этом веб-сайте
  4. добавить web.config в папке веб-сайта, чтобы определить конечные точки и конфигурацию службы и т. д.

теперь ваша служба WCF будет доступна по базовому адресу веб-сайта, а также по имени , например,

http://myserver/someweb/Myservice.svc

код *.svc будет выглядеть так это:

<%@ ServiceHost Language="C#" Debug="true" 
    Service="Service" 
    CodeBehind="~/App_Code/Service.cs" %>

простой пример web.config может выглядеть примерно так:

<system.serviceModel>
    <behaviors>
        <serviceBehaviors>
            <behavior name="WithDebug">
                <serviceMetadata httpGetEnabled="true" />
                <serviceDebug includeExceptionDetailInFaults="true" />
            </behavior>
        </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  <services>
    <service name="SimpleWCF.HelloIndigoService" behaviorConfiguration="true">
      <endpoint
          address=""
          binding="basicHttpBinding"
          contract="SimpleWCF.IHelloIndigoService" />
      <endpoint
          address="mex"
          binding="mexHttpBinding"
          contract="IMetadataExchange" />
    </service>
  </services>
</system.serviceModel>

вы в основном определяете свой <service> tag-и снова:name= обозначает класс, реализующий сервис-полный с его пространством имен. Он должен содержать хотя бы одну конечную точку - поскольку IIS6 поддерживает только HTTP, вы можете использовать basicHttpBinding или wsHttpBinding и это все, что есть. Конечная точка " mex " является необязательной, но очень полезной, особенно для разработки и тестирования. Он позволяет клиенту "обнаружить" сервис и получить его описание, чтобы он мог взаимодействовать с ним.

после развертывания службы в IIS вы можете увидеть ее в действии с помощью такого инструмента, как тестовый клиент WCF это поставляется бесплатно с WCF, или SoapUI который является универсальной утилитой для тестирования SOAP (с бесплатной версией для вас).