カスタムコンフィグレーションファイルを持つアセンブリライブラリ内でWCFサービスを呼び出す際に苦労しています。 WCFサービスはCitrix Xen Server環境内で実行されるため、おそらく問題の原因になります。wcfサービスとカスタムコンフィグレーションパスを使用
アセンブリライブラリを参照するコンソールアプリケーションをセットアップし、WCFサービスエンドポイントに接続するライブラリ内のパブリックメソッドを呼び出し、WCF関数の呼び出しから取得したデータをWindowsフォームのDatagrid内に表示します。そのよう
var assembly = Assembly.GetAssembly(typeof(E2ADokumente));
var assemblyFilePath = assembly.Location;
var assemblyDirectory = Path.GetDirectoryName(assemblyFilePath);
var dllName = assembly.GetName().Name + ".dll.config";
string configPath = Path.Combine(assemblyDirectory, dllName);
AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", configPath);
WCFプロキシがあるの構築:
は今、私は、アセンブリライブラリによって表示されるウィンフォームクラスのE2ADokumente "のコンストラクタ内の現在のアプリケーションドメインの設定パスを設定しています:
WSTrustChannelFactory channelFactory = new WSTrustChannelFactory("STSEndpunkt")
"STSEndpunkt"は、設定ファイルで定義されています。
コードをローカルで実行するとすべて動作しますが、ターミナルサービス環境内で同じアプリケーションを実行すると、設定ファイルが見つからないことがあります。 "STSEndpunkt"が見つかりませんというエラーメッセージが表示されます。
新しいアプリケーションドメイン内でアセンブリライブラリを実行しても、ターミナルサービス環境内で動作します。しかし、別のレイヤーを持ち、リフレクションによってメソッドを呼び出すのはオーバーヘッドがあまりにも大きいので、私は単純なソリューションを探しています。
ターミナルサービス内で実行されるアセンブリライブラリ内のWCF構成の詳細を含む構成ファイルのパスを設定するにはどうすればよいですか?
コードでのWCFチャネル設定の構築はオプションではありません。