在WCF服务库项目中使用自定义ServiceHostFactory

时间:2010-05-04 07:06:28

标签: c# wcf

我正在编写一个内部严重依赖于控制反转的WCF服务。我想在自定义ServiceHostFactory中引导/初始化我的IoC容器。我已经阅读了一些可用的不同钩子的例子,但它们似乎都不适用于我。

这个approach是我更喜欢使用的(自定义IServiceBehavior,IInstanceProvider,ServiceHost和ServiceHostFactory),但最后一步是向服务发出信号,要求在我的服务中使用我的自定义ServiceHostFactory * .svc-文件。我没有其中之一,因为项目类型是WCF服务库 - 而不是WCF服务应用程序。有没有办法告诉WCF在App.config文件中使用我的ServiceHostFactory?

2 个答案:

答案 0 :(得分:7)

Ciddan,很高兴看到你找到了解决方案(尽管并不完美)。我和你有同样的问题,最后使用IIS来托管服务,并使用web.config中的serviceHostingEnvironment连接我的Ioc自定义类(驻留在我的WCF服务库中)。这些方面的东西:

<serviceHostingEnvironment multipleSiteBindingsEnabled="true">
    <serviceActivations>
        <add relativeAddress="./Service1.svc" service="WcfServiceLibrary1.Service1"
          factory="WcfServiceLibrary1.IocServiceHostFactory, WcfServiceLibrary1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    </serviceActivations>
</serviceHostingEnvironment>

“./ Service1.svc”是我的无文件服务位置,其中WcfServiceLibrary1.Service1是具体的imp。我确实遇到了一些绊脚石,但最终设法将Woc封装在WCF服务库中。

blog post非常有用,并且有一些很棒的提示。

答案 1 :(得分:3)

由于我没有看到anwer,我会发布我发现的内容,这不是很令人鼓舞。

对ServiceHostFactory的所有引用都指向svc文件和Factory属性,这不是您要查找的内容。

This thread on MSDN甚至告诉你不可能做你想要达到的目标。

...对不起