当前位置:  开发笔记 > 运维 > 正文

WCF自托管服务可以有初始化逻辑吗?

如何解决《WCF自托管服务可以有初始化逻辑吗?》经验,为你挑选了1个好方法。

我在VS2010中创建了一个WCF服务库,可以通过从项目的右键菜单中选择Debug-> Start New Instance来运行该服务.

我可以进一步定义一些在服务启动之前执行的初始化逻辑吗?

编辑:

我试图实现的是初始化NHibernate和其他几个元素,以便在服务启动时就绪.



1> marc_s..:

如果你的自我主机(即写你的WCF举办自己) -当然,没问题,做任何你需要你打电话之前做.Open()ServiceHost.

ServiceHost host = new ServiceHost(typeof(YourServiceClass));

// do your initialization here
........

host.Open();

如果您使用IIS或WAS或AppFabric来托管您的WCF服务:我对此表示怀疑,因为它们是"基于消息的"激活服务器,例如,当请求进入时,它们启动服务主机以按需处理请求,如果您使用常规ServiceHost类进行托管,我不知道有任何扩展点进入初始化过程.

这就是说:你当然可以定义自己的后代ServiceHost- 从中派生你的自定义服务主机ServiceHostServiceHostBase- 那些应该给你点进入初始化过程(覆盖InitializeRuntime方法或响应Opening事件).

请参阅MSDN文档:

ServiceHostBase自定义服务主机的抽象基类

ServiceHost作为ServiceHostBase可能继承的具体实现

定制服务主持人解释如何实现这一切的细节

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有