- PR -

クラスライブラリからWeb.configファイルの値取得について

1
投稿者投稿内容
NAO
ベテラン
会議室デビュー日: 2003/09/24
投稿数: 51
投稿日時: 2004-02-04 11:15

現在、クラスライブラリの、あるクラスからWeb.configファイル(ASP.NET)の値を
取得しようと思っているのですが、それは可能なのでしょうか?

Webアプリからの呼び出しの様に記述する方法だとうまくいきません。

string dbConnectString = ConfigurationSettings.AppSettings["DBConnString"];
※NULLが返ってきます。

不可能なことなのでしょうか?
ご存知の方よろしくお願い致します。
ぢゃん♪
大ベテラン
会議室デビュー日: 2003/06/12
投稿数: 208
お住まい・勤務地: 都内
投稿日時: 2004-02-04 11:40
引用:

NAOさんの書き込み (2004-02-04 11:15) より:

現在、クラスライブラリの、あるクラスからWeb.configファイル(ASP.NET)の値を
取得しようと思っているのですが、それは可能なのでしょうか?

Webアプリからの呼び出しの様に記述する方法だとうまくいきません。

string dbConnectString = ConfigurationSettings.AppSettings["DBConnString"];


クラスライブラリを呼び出しているプログラムは何ですか?
もしかして、このスレッドで出てきたexeプログラムですか?

ASP.NETでないアプリケーションからクラスライブラリを呼び出していたら、この手段ではNGでしょう。
(逆に言えば、ASP.NETのアプリケーションからクラスライブラリを呼び出していたら、この手段でOKですが。)
NAO
ベテラン
会議室デビュー日: 2003/09/24
投稿数: 51
投稿日時: 2004-02-04 12:01
お世話になります。

>クラスライブラリを呼び出しているプログラムは何ですか?
>もしかして、このスレッドで出てきたexeプログラムですか?

そうです。

Web.configファイルから固定値として取得しようと試みたのですが、
難しそうですね。
Webアプリとの連携というのは、そう簡単ではないんでしょうね。


Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-02-04 12:15
引用:

NAOさんの書き込み (2004-02-04 12:01) より:

Webアプリとの連携というのは、そう簡単ではないんでしょうね。


 「連携」をどうとらえるか、だと思います。

 ここで、WebアプリとWinアプリを同じPCで開発していると思いますが、違うPCで開発してみてください。そうすると、(おそらく)C:\Inetpub\wwwroot\Applicationディレクトリにあるweb.configにアクセスできなくなりますよね。すると、今考えていらっしゃる「連携」の基準が崩れるでしょう。
ぢゃん♪
大ベテラン
会議室デビュー日: 2003/06/12
投稿数: 208
お住まい・勤務地: 都内
投稿日時: 2004-02-04 12:27
ちなみに補足。
たとえば BATCH.exe という実行ファイル(から呼ばれたクラスライブラリ)で、
コード:

string dbConnectString = ConfigurationSettings.AppSettings["DBConnString"];


という形で固定値を取りたければ、BATCH.exe用のアプリケーション構成ファイル(BATCH.exe.config)をASP.NET側のWeb.configとは別に用意する、という手段もあります。

もちろん、ASP.NET側のWeb.configを読むわけではありません
つまり、ASP.NET側のWeb.configとは別に管理する必要があるので、固定値の情報が分散するリスクはあります。

あと、ASP.NETのアプリケーションとBATCH.exeを、必ず同じPC内で動かすなら、他にも方法が一応あります。
が、こちらのリスクはもっと大きく、気軽に使っていい手段ではないので、敢えて触れません。

[ メッセージ編集済み 編集者: ぢゃん♪ 編集日時 2004-02-04 12:49 ]
NAO
ベテラン
会議室デビュー日: 2003/09/24
投稿数: 51
投稿日時: 2004-02-04 13:24

ご回答ありがとうございます。
まだまだ勉強不足の点が多くてすみません。
お手数かけました。
今までのアドバイスを参考に、もう一度
どのような仕様にするのか再検討してみたいと思います。

ありがとうございました。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-02-04 14:11
 ちなみに私のところでは。。。

 APIからC:\Documents And Settings\All Usersのディレクトリを得、Application Dataディレクトリの下にコーポレイト名、アプリケーション名のディレクトリを作って、そこにXMLシリアライザで情報を保存しています。
 もちろん、誰でも見られる情報になるので、暗号化するなど、セキュリティ面の強化は必要です。
1

スキルアップ/キャリアアップ(JOB@IT)