app.config に次の構成があります。
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="myBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
このサービスをデスクトップ アプリからプログラムで公開したいと考えています。
ホスト インスタンスを定義します。
ServiceHost host = new ServiceHost(typeof(MyType), new Uri("http://" + hostName + ":" + port + "/MyName"));
次に、バインディングを使用してエンドポイントを追加します。
var binding = new BasicHttpBinding("myBinding");
host.AddServiceEndpoint(typeof(IMyInterface), binding, "MyName");
ここで、次のコードを、構成ファイルからmyBehaviorという名前の動作を読み取り、動作オプションをハードコーディングしないコードに置き換えたいと思います。
ServiceMetadataBehavior smb = new ServiceMetadataBehavior() { HttpGetEnabled = true };
host.Description.Behaviors.Add(smb);
// Enable exeption details
ServiceDebugBehavior sdb = host.Description.Behaviors.Find<ServiceDebugBehavior>();
sdb.IncludeExceptionDetailInFaults = true;
次に、ホストを開くことができます。
host.Open();
* 編集 *
構成ファイルを使用したサービスの構成
この方法は必要ありません。ホストが構成ファイルから自動的に構成を取得するようにし、手動で指定しないようにする必要があります。この記事 (構成ファイルを使用したサービスの構成) を読んでください。 C# では 1 行、config では数行です。
これは (コードで WCF サービスを構成する) に関する 2 番目の記事です。
これを回答として追加します。