カスタム ServiceHostFactory を作る場面

カスタム ServiceHost を使ってサービスを IIS にホストさせたいとき、カスタム ServiceHostFactory を作ります。

public class MyServiceHostFactory : ServiceHostFactory
{
    // コンストラクタは必須。無いと例外が発生する。
    public MyServiceHostFactory()
    {
    }

    protected overrid ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses)
    {
        return new MyServiceHost(serviceType, baseAddresses);
    }
}

こんなクラスを定義して、WCF サービスプロジェクトの .svc ファイルに Factory で指定。

<%@ ServiceHost Language="C#" Debug="true" Service="Sample.MyService" Factory="Sample.MyServiceHostFactory" %>

これで、IISASP.NET 開発サーバーでサービスをホストするときに、カスタム ServiceHost を使えます。

カスタム ServiceHostFactory 内で、複雑な処理を行うべきではありません。そういった処理は、カスタム ServiceHost 内に押し込んだ方がいいです。