强制WcfSvcHost.exe使用我的自定义服务主机

时间:2009-10-09 11:49:55

标签: c# .net wcf visual-studio unity-container

是否可以强制使用WcfSvcHost(在我执行F5时自动执行或在解决方案中调试其他项目时)使用自定义ustom服务?

我的自定义服务主机通过使用服务工厂在我的asp.net主机容器中运行良好,服务工厂又调用自定义服务基础。

但是当WcfSvcHost执行它时,它不使用我的自定义ustom服务。

这可能吗?

如果没有,我的替代方案是什么?我认为我必须取消选中“在另一个解决方案中调试项目时启动WCF服务主机”,这是在应用程序属性的WCF选项中,但我必须创建一个控制台主机容器吗?

每次我调试其他东西时,我都无法让控制台主机容器自动执行?

我在app属性中的DEBUG下注意到这一点(也许我可以使用类似的东西来强制加载自定义服务主机)

/client:"WcfTestClient.exe"

问题是我的自定义ServiceHost注入了一些UNITY(IOC)的东西,这里是覆盖方法......所以它必须执行,否则它会失败。

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

2 个答案:

答案 0 :(得分:3)

我正在尝试完全相同的目的(; - )

我以为我找到了一个解决方案,不再使用物理.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文件中放入相同的条目并不会使SvcWcfHost使用它。

我想我没有得到我的relativeAddress。

有人有这方面的经验吗?

KR, Michel Liesmons。

答案 1 :(得分:1)

我认为你不能这样做 - 你需要在IIS中托管或创建自己的定制服务主机。