0

全てにおいて良い日、

ChannelFactory オブジェクトの作成時に構成ファイルからエンドポイントを取得しているときに、構成の問題が発生しました。

ServiceModel クライアント構成セクションで、名前が「サービスに関係なく」、コントラクトが「コントラクトに関係なく」のエンドポイント要素が見つかりませんでした。これは、アプリケーションの構成ファイルが見つからなかったか、この名前に一致するエンドポイント要素が client 要素に見つからなかったためである可能性があります。

この種の例外の通常の解決策は、このコードを実行する exe に .config ファイルを追加することです。この場合、このコードを com+ で実行しているので、すべてのエンドポイントを含む dllhost.exe.config ファイルを作成しました。

興味深いのは、クライアント アプリケーションからもこのサービスを使用していて、wcf プラットフォームが問題なく同じエンドポイントを見つけたことです。dllhost.exe.config の他のエンドポイントは正常に動作していると思います。

ちなみに、このサービスを使用する問題のあるプロキシは、カスタマイズされた Enterprise Library コードです。コードをデバッグしている間、それは間違いなく dllhost プロセスの下で実行されます。

エンドポイントを探している構成ファイルを見つける方法はありますか?

ありがとうございました。

4

1 に答える 1

0

数日間のチェックとテストの後、問題を解決する 2 つの方法が見つかりました。

  • dllhost.exe.config - 手動で編集/作成/更新するべきではありませんが、MSI からです。おそらく、system32 ディレクトリに配置され、Windows によってブロックされることが原因です。
  • より良い方法 - COM+ サービスアプリケーション ルート ディレクトリを作成し、そこに 2 つのファイルを配置することです。

    • ServiceName.config - エンドポイントのリストが含まれています
    • ServiceName.manifest - 3 行を含む
      • <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> </assembly>
于 2013-07-16T10:06:41.830 に答える