Я полагаю, что у вас есть два основных варианта:
Вариант 1 - развертывание "bin" (предпочтительный вариант)
- компилирование службы WCF вDLL (библиотека классов)
- создать веб-сайт в IIS6
- скопировать DLL-файлы WCF в папку
.\bin
веб-сайта - создать файл
*.svc
на этом веб-сайте - добавьте соответствующий
web.config
в папку веб-сайта, чтобы определить свои конечные точки, конфигурацию службы и т. Д.
Ваша служба WCF теперь будет доступна по базовому адресу веб-сайта плюс имяФайл *.svc
, например,
http://myserver/someweb/Myservice.svc
Ваш *.svc
будет выглядеть примерно так:
<%@ ServiceHost Language="C#" Debug="true"
Service="WCF_Simple_Service.HelloIndigoService" %>
Атрибуты Service=
обозначают класс, реализующий сервис - полностью квалифицированный с егоnamespace.
Вариант 2 - поместить материал в App_Code
- создать сайт в IIS6
- поставить все ваши WCF связанные
*.cs
файлы непосредственно в папку .\App_Code
- создать файл
*.svc
на этом сайте - добавьте соответствующий
web.config
в папку веб-сайта, чтобы определить свои конечные точки, конфигурацию службы и т. Д.
Ваша служба WCF теперь будет доступна по базовому адресу веб-сайта плюс имяфайл *.svc
, например,
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>
- и снова: name=
обозначает класс, реализующий сервис - полностью квалифицированный с его пространством имен.Он должен содержать хотя бы одну конечную точку - поскольку IIS6 поддерживает только HTTP, вы можете использовать basicHttpBinding
или wsHttpBinding
, и это почти все, что есть.Конечная точка "mex" является необязательной, но очень полезной, особенно для разработки и тестирования.Он позволяет клиенту «обнаружить» службу и получить ее описание службы, чтобы он мог взаимодействовать с ней.
После развертывания службы в IIS ее можно увидеть в действии с помощью такого инструмента, как WCF.Тестовый клиент , который поставляется бесплатно с WCF, или SoapUI , представляющий собой универсальную утилиту для тестирования SOAP (с бесплатной версией для использования).