2017-04-06 1 views
0

web.config内にアプリの設定を含むWCFサービスアプリケーション(A)が1つあります。複数のWCFサービスアプリケーションでアプリケーション設定がnullになっていますか?

<appSettings>  
<add key="A" value="a1"/> 

& web.configファイル内のアプリケーション設定を含む別のWCFサービスアプリケーション(B)を有します。

<appSettings> 
    <add key="B" value="b1"/> 
</appSettings> 

私はAの内部でB.dllの参照を取り、Aクラスの中でB.GetData1()メソッドを呼び出しました。

public string GetData(int value) 
{ 
    B.Service1 b = new B.Service1(); 
    b.GetData1(1); 

    return string.Format("You entered: {0}", value); 
} 

、これはBクラス内部b.GetData1()メソッドコードです。

public string GetData1(int value) 
{ 
    string s = ConfigurationManager.AppSettings["B"].ToString(); 
    return string.Format("You entered: {0}", value); 
} 

しかし、ここで私はこの問題を解決する方法

string s = ConfigurationManager.AppSettings["B"].ToString(); 

にnull値を取得していますか?助けてください。

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

答えて

0

構成ファイルはdllのコンテキストではなくWebアプリケーション用に使用されます。 サービス "B"にweb.configが関連付けられていても、サービス "A"のB.dllの参照を追加しても、サービスAのコンテキストで実行されているコードでは使用できません。サービスAのいずれのコードも、独自のweb.configファイルからのみアクセスでき、サービスBの設定にアクセスすることはできません。 サービスBのweb.configに存在する同じ設定/構成をサービスAのweb.configに追加する必要があります。だから<add key="B" value="b1"/>をサービスAのweb.configに移動するとうまくいくはずです。

+0

こんにちは...返信いただきありがとうございます.Aのweb.configにアプリの設定をコピーする以外の方法はありますか?なぜ私はこれが単なる例であるのかという質問です。実際のところ、 'B'サービスはいくつかのアプリケーションによって呼び出されています。私は、Bのアプリケーション設定を呼び出し元アプリケーションに追加する方が良い方法ではないと思いますか? – ANR

+0

残念ながら、コーピングの設定以外の方法はありません。しかし、実際のシナリオでは、WCFサービスとしてビジネスロジックを開発する場合、それを他のアプリケーション/ wcfサービスでサービスとして使用することになります。 WCFサービスとして開発されている場合は、dll参照を追加して消費するべきではありません。 –

+0

ありがとうございます。 – ANR

0

これが機能するには、アプリケーションAの設定に<add key="B" value="b1"/>が必要です。

0

アクセスしようとしているアプリケーション設定(B)をアプリケーションAのweb.configに入れてみてください。

関連する問題