WCF: размещение службы в IIS
Всем доброго времени суток. На связи Алексей Гулынин. В данной статье я бы хотел рассказать, как WCF-службу разместить в IIS (Internet Information Services). Для этого создадим веб-проект (пустой сайт) в Visual Studio. В данном проекте нам нужен только файл Web.config.
В данный файл добавим следующий код:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.serviceModel>
<services>
<service name="ServiceIISLibrary.MyIISService" behaviorConfiguration="MEXServiceTypeBehavior">
<endpoint address="" binding="basicHttpBinding" contract="ServiceIISLibrary.IContract" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MEXServiceTypeBehavior">
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
В принципе, можно было и не создавать веб-проект, а просто вручную создать файл Web.config.
В текущем решении создадим ещё проект типа "Библиотека классов". Назовем его ServiceIISLibrary. Здесь добавим контракт и реализуем его:
using System.ServiceModel;
namespace ServiceIISLibrary
{
[ServiceContract]
interface IContract
{
[OperationContract]
string Print(string str);
}
public class MyIISService: IContract
{
public string Print(string str)
{
return "Ответ от IIS. Вы набрали: " + str;
}
}
}
Построим проект ServiceIISLibrary (правок кнопкой по проекту — Собрать) для того, чтобы сгенерировалась dll-библиотека.
Давайте теперь создадим папку, в которую соберем все файлы, которые необходимы для того, чтобы разместить нащ сервис в IIS:
- Создадим на диске C (или в любом другом месте) папку "MyServiceIIS".
- В данной папке создадим файл "MyService.svc".
- В данный файл добавим одну лишь строку: <%@ServiceHost Service="ServiceIISLibrary.MyIISService"%>.
- Также добавим сюда файл "Web.config".
- Создадим папку "bin" и в неё добавим файл ServiceIISLibrary.dll
Как добавить службы IIS в Windows 7?
Для этого необходимо зайти в панель управления — программы и компоненты — слева выбрать пункт "Включение и отключение компонентов Windows" — выбрать "Службы IIS" — Нажать ОК:

Давайте теперь откроем диспетчер служб IIS и добавим наш сайт. Заходим в панель управления — Администрирование — диспетчер служб IIS. Добавим виртуальный каталог:

Физический путь указываем к папке на диске C. Имя сайта указываем "MySite":

Преобразуем наш каталог в приложение:


Давайте теперь проверем, что всё работает. Откроем браузер и в строке укажем путь к сервису: http://localhost/MySite/MyService.svc
При переходе по данной ссылке иногда может возникнуть ошибка. В качестве решения я предлагаю зайти в папку C:\Windows\Microsoft.NET\Framework\v4.0.30319 и запустить в командной строке "aspnet_regiis -i".
В данной статье мы уже писали код клиента. В коде необходимо только поменять адрес на http://localhost/MySite/MyService.svc
Запустим клиент и увидим, что всё работает:

В данной статье вы узнали, как размещать сервис в службах IIS.
На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.




