カスタム ServiceHost オブジェクトを作成し、コードから構成しています。私のサービスは InstanceContextMode.Single と ConcurrencyMode.Multiple を使用しており、Windows サービスでホストされています。
多くのブログ/記事(こちら)で述べられているように、インスタンス間で StructureMap コンテナーを共有するには、カスタム InstanceProvider、ServiceBehavior、および ServiceHostFactory を使用する必要があります。
私の初期化コードは次のようになります。構成ファイルは使用しません。
var baseAddress = ConfigurationManager.AppSettings["BaseAddress"];
var port = Int32.Parse(ConfigurationManager.AppSettings["Port"]);
Host = new MyServiceHost(typeof(MediaFileServicePrivate), new Uri(string.Format(baseAddress, port)));
var binding = new NetTcpBinding();
Host.AddServiceEndpoint(typeof(IMediaFileServicePrivate), binding, string.Format(baseAddress, port));
カスタム サービス ホスト ファクトリを使用するようにサービスに指示するにはどうすればよいですか? 私が見つけることができるすべての例は、構成ファイルから構成します。
ServiceHostFactory は、IIS/WAS でホストされるシナリオにのみ使用されますか? その場合、自己ホスト型の InstanceContextMode.Single サービスに SM を使用するにはどうすればよいですか?