Как развернуть мою службу WCF на IIS 6.0?
Я совершенно новичок в WCF
и развертывание услуг. У меня возникли проблемы с настройкой службы на IIS 6.0.
мне нужны точные шаги для развертывания моего WCF
служба на IIS 6.0.
Примечание: я создал WCF
приложения службы...
Итак, каковы точные шаги, которые мне нужно выполнить для развертывания моей службы wcf на IIS 6.0?
1 ответов
у вас есть в основном два варианта, я считаю:
Вариант 1 - " bin " deploy (предпочтительный вариант)
- скомпилируйте службу WCF в DLL (библиотеку классов)
- создать веб-сайт в IIS6
- скопируйте DLL WCF в
.\bin
папку - создать
*.svc
файл на этом веб-сайте - добавить
web.config
в папке веб-сайта, чтобы определить конечные точки и службу конфигурация и т. д.
теперь ваша служба WCF будет доступна по базовому адресу веб-сайта, а также по имени , например,
http://myserver/someweb/Myservice.svc
код *.svc
будет выглядеть примерно так:
<%@ ServiceHost Language="C#" Debug="true"
Service="WCF_Simple_Service.HelloIndigoService" %>
на Service=
attributes обозначает класс, реализующий сервис-полный с его пространством имен.
Вариант 2-поместите материал в App_Code
- создать сайт в Для iis6
- поместите все связанные с WCF
*.cs
файлы непосредственно в.\App_Code
папку - создать
*.svc
файл на этом веб-сайте - добавить
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 (с бесплатной версией для вас).