0

サービス ホストのエンドポイントでハンドルを取得し、それらの ID を変更する方法を見つけようとしています。構成ファイルで定義されたエンドポイントがありますが、環境 (例: QA、UAT、Prod) に応じてプログラムでエンドポイントを変更したいと考えています。

サービスは IIS6 でホストされており、servicehostfactory を使用して拡張された servicehost クラスを IIS に提供しています。

オープニング イベントを使用して、構成ファイルから既に定義されているエンドポイントのハンドルを取得していますが、ID を変更する方法がわかりません。それは可能ですか?エンドポイントは、作成後に不変ですか?

エンドポイントを変更できない場合、servicehost の "Opening" イベントは、サービス エンドポイントを追加する正しいイベントですか?

4

1 に答える 1

2

ServiceHosts は、開かれるまで不変ではありません。AddServiceEndpoint を呼び出した後、エンドポイントの説明を変更できます。

Opening イベントと言うときは、ServiceHost をサブクラス化し、OnOpening をオーバーライドしているということですか? その場合は、エンドポイントを追加するのに最適な場所です。

または、独自の ServiceHostFactory を使用している場合は、base.CreateServiceHost を呼び出した後にエンドポイントを追加するだけです。

于 2010-11-14T00:06:18.840 に答える