0

WCF(winodws service hosting)サービスは、一連のプロトコルとバインディング(http、https、net.tcp、net.pipe)を使用します。設定ファイルの設定を使用します。

サービスのデモ版を作成したい。このデモでは、net.pipeプロトコルのみを使用します。これだけを使用するようにサービスを制限するにはどうすればよいですか?コードを変更することはできますが、どこでどのように変更しますか?

4

1 に答える 1

1

ServiceHostChannelDispatcherプロパティ内の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
于 2012-08-21T03:31:40.587 に答える