カスタム 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" %>
これで、IIS や ASP.NET 開発サーバーでサービスをホストするときに、カスタム ServiceHost を使えます。
カスタム ServiceHostFactory 内で、複雑な処理を行うべきではありません。そういった処理は、カスタム ServiceHost 内に押し込んだ方がいいです。