Заставить WcfSvcHost.exe использовать мой пользовательский сервисный хост - PullRequest
4 голосов
/ 09 октября 2009

Можно ли заставить WcfSvcHost (который выполняется автоматически, когда я делаю F5 или когда я отлаживаю другой проект в решении), чтобы использовать настраиваемую службу?

Мой хост настраиваемой службы отлично работает в контейнере asp.net Host, используя фабрику служб, которая, в свою очередь, вызывает базу настраиваемых служб.

Но когда WcfSvcHost выполняется, он не использует мой пользовательский пользовательский сервис.

Возможно ли это?

Если нет, каковы мои альтернативы? Я предполагаю, что должен снять флажок «Запускать узел службы WCF при отладке проекта в другом решении», который находится в разделе «Параметры WCF» в свойствах приложения, но затем я должен создать контейнер узла консоли?

И я не могу заставить контейнер консоли хоста автоматически выполняться каждый раз, когда я отлаживаю что-то еще?

Я замечаю это под DEBUG в свойствах приложения (возможно, я могу использовать что-то подобное для принудительной загрузки пользовательского сервис-хоста)

/client:"WcfTestClient.exe"

Проблема в том, что у меня есть свой собственный ServiceHost, который внедряет некоторые вещи UNITY (IOC), здесь переопределенный метод ... поэтому он должен выполняться, в противном случае он не сможет.

protected override void InitializeRuntime()
{
    Bootstrapper.ConfigureUnityContainer();
    base.InitializeRuntime();
}

Ответы [ 2 ]

3 голосов
/ 10 января 2010

Я пытался в точности то же самое для точно такой же цели (; -)

Я подумал, что нашел решение, если больше не использовать физические файлы .svc (которые содержат настраиваемую фабрику хостов при размещении в IIS), а вместо этого перенес эту информацию в файл .config:

<serviceHostingEnvironment aspNetCompatibilityEnabled="false">
  <serviceActivations>
    <add relativeAddress="~/Services/NaisTime/NaisTimeService.svc" service="Nais.Time.Services.NaisTime.NaisTimeService"
      factory="Nais.Time.Services.NaisServiceHost.NaisServiceHostFactory, Nais.Time.Services" />
    <add relativeAddress="~/Services/Northwind/NorthwindService.svc" service="Nais.Time.Services.Northwind.NorthwindService"
      factory="Nais.Time.Services.NaisServiceHost.NaisServiceHostFactory, Nais.Time.Services" />
  </serviceActivations>
</serviceHostingEnvironment>

Это работает для IIS, но размещение тех же записей в файле app.config моего проекта Service Library не заставляет SvcWcfHost использовать это.

Полагаю, я неправильно понимаю адрес своего родственника.

У кого-нибудь есть опыт с этим?

кр, Мишель Лисмонс.

1 голос
/ 09 октября 2009

Я не думаю, что вы можете сделать это - вам нужно разместить в IIS или создать свой собственный, настроенный сервисный хост.

...