WCF(winodws service hosting)サービスは、一連のプロトコルとバインディング(http、https、net.tcp、net.pipe)を使用します。設定ファイルの設定を使用します。
サービスのデモ版を作成したい。このデモでは、net.pipeプロトコルのみを使用します。これだけを使用するようにサービスを制限するにはどうすればよいですか?コードを変更することはできますが、どこでどのように変更しますか?
ServiceHost
ChannelDispatcher
プロパティ内のsのコレクションを所有していChannelDispatchers
ます。ChannelDispatcher.BindingName
を使用して、サービスで使用されているバインディングの名前を把握できます。
ServiceHost host = new ServiceHost(typeof(SomeService), baseAddress))
//configure service endpoints here
host.Open();
#if DEMO_MODE
foreach (ChannelDispatcher dispatcher in host.ChannelDispatchers)
{
//binding name includes namespace. Example - http://tempuri.org/:NetNamedPipeBinding
var bindingName = dispatcher.BindingName;
if (!(bindingName.EndsWith("NetNamedPipeBinding") || bindingName.EndsWith("MetadataExchangeHttpBinding")))
throw new ApplicationException("Only netNamedPipeBinding is supported in demo mode");
}
#endif