1

特定のURLへのWebサービス呼び出しを行うためのサービス参照を使用してアプリを作成しましたが、これはうまく機能します。このコードをExcelアドインに移動したいのですが、次の問題が発生します。

未処理の例外メッセージ:ServiceModelクライアント構成セクションで「ConnectivityHttpsSoap12Endpoint」という名前のエンドポイント要素とコントラクト「Connectivity.ConnectivityPortType」が見つかりませんでした。これは、アプリケーションの構成ファイルが見つからなかったか、この名前に一致するエンドポイント要素がクライアント要素で見つからなかったことが原因である可能性があります。

問題は、Excelがクラスライブラリを呼び出しているためにapp.config(サービス参照情報付き)がロードされておらず、呼び出し元のアプリケーションのapp.configにサービス参照を追加する必要があることです。しかし、それはExcelで実行できますか?さらに良いことに、コードからapp.configをロードする方法はありますか?

4

3 に答える 3

2

を使用して開く必要がありますConfigurationManager。app.config ファイルは呼び出しアセンブリ パス (通常) で見つけることができるため、次のようなメソッドを記述できます。

public static Configuration LoadLocalConfigurationFile(string fileName)
{
    // fileName is the configuration file you want to open
    var configMap = new ExeConfigurationFileMap 
    { 
        ExeConfigFilename = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, fileName)
    };

    return ConfigurationManager.OpenMappedExeConfiguration(
        configMap, ConfigurationUserLevel.None);
}
于 2012-11-02T16:57:17.620 に答える
1

私は最近同じ問題を抱えており、最良の解決策が次の場所に含まれていることがわかりました。

実行時にデフォルトの app.config を変更する

設定ファイルを次の場所に向けます。

AppDomain.CurrentDomain.BaseDirectory + "AssemblyName.dll.config"

AssemblyName はアドイン アセンブリの名前です

于 2013-06-18T01:52:34.270 に答える