首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提供自定义ServiceHost

提供自定义ServiceHost
EN

Stack Overflow用户
提问于 2013-10-22 05:50:55
回答 2查看 921关注 0票数 0

我想为我的IIS托管服务设置一些初始化代码.我读过这篇文章,它说(其中一个变体):

通过从ServiceHost类型派生,可以实现受保护的方法ServiceHostBase.InitializeRuntime。

我的问题是:我可以向IIS提供我自己的自定义ServiceHost类型吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-22 06:11:22

正如本文所建议的,您可以向IIS提供初始化服务主机的ServiceHostFactory

首先,在.svc文件中定义工厂:

代码语言:javascript
复制
<%@ServiceHost Language="C#" Factory="SomeNamespace.MyServiceHostFactory" %>

然后创建工厂和主机类:

代码语言:javascript
复制
class MyServiceHostFactory : ServiceHostFactory
{
    protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses)
    {
        return new MyServiceHost(serviceType, baseAddresses);
    }
}

class MyServiceHost : ServiceHost
{
    public MyServiceHost()
    {
        // initialize, add endpoints, behaviors, etc.
    }
}

如果愿意,还可以重写InitializeRuntime。在本文中,他们使用它来记录运行服务的虚拟目录。

票数 3
EN

Stack Overflow用户

发布于 2013-10-22 06:47:37

另一种方法是通过Web.config文件中没有文件的激活来实现这一点。在<system.serviceModel>部分中,添加以下内容:

代码语言:javascript
复制
<serviceActivations>
  <add relativeAddress="Service.svc" 
       service="SomeNamespace.Service1" 
       factory="SomeNamespace.MyServiceHostFactory"/>
</serviceActivations>

这使您可以在IIS中承载服务,而不需要物理.svc文件。不过,这是一个WCF 4.0+特性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19509965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档