【问题标题】:Using a custom ServiceHostFactory in a WCF Service Library project在 WCF 服务库项目中使用自定义 ServiceHostFactory
【发布时间】:2010-05-04 07:06:28
【问题描述】:

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

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

【问题讨论】:

  • 问题中的链接现在已损坏,如果有人知道它的位置会有所帮助。谢谢。
  • @BBauer42 如果您是指原始问题中的那个,我认为就是这样:lostechies.com/jimmybogard/2008/07/30/…
  • @Ciddan 你解决了这个问题吗?
  • @Kob_24 我不记得了。毕竟,那是 6 年前的事了……AFAIC 记得我放弃了并将项目转换为服务应用程序而不是服务库。
  • 谢谢你,我解决了。

标签: c# wcf


【解决方案1】:

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。我确实遇到了一些绊脚石,但最终还是设法从 WCF 服务库中封装了 Ioc。

这个blog post 非常有帮助,并且有一些很棒的提示。

【讨论】:

    【解决方案2】:

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

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

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

    对不起...

    【讨论】:

    • 我继续使用 WCF 服务应用程序重新实现服务...不是我想要的,但我宁愿拥有 IoC。
    猜你喜欢
    • 2013-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-26
    • 2015-07-27
    • 2010-09-17
    相关资源
    最近更新 更多