2011-06-29 19 views
0

app.configファイルのappSettingsセクションから電子メールアドレスを取得しようとしています。テストを実行するたびに、reportRecipientsはNullになります。誰かが私が間違っているのを見ることができますか?appSettingsから電子メールアドレスをプル

<appSettings> 
    <add key="Overdue_Report_Recipients" value="[email protected]"/> 
    </appSettings> 

string reportRecipients = ConfigurationManager.AppSettings["Overdue_Report_Recipients"]; 

おかげ

編集: これは、Webアプリケーションではありませんプロジェクトのためです。それはソリューションの一部で、ほとんどのプロジェクトはウェブアプリケーションですが、この特定のサービスはサービスです。私はそれを削除したasp.netタグとの混乱のため申し訳ありません。

私は、アプリの設定に保存されている別の値を持っていると私はからデータを取得することができるよ、それ

<add key="Sweeper_Notify_When_None_Overdue" value="false"/> 

bool sendWhenNoneOverdue = 
       Convert.ToBoolean(System.Configuration.ConfigurationManager.AppSettings["Sweeper_Notify_When_None_Overdue"]); 

ANSWER:私は別のプロジェクトで私のテストを実行していたし、テストから読んでいた 私がテストしていたプロジェクトのapp.configファイルではなく、テストプロジェクトのconfigファイルです。 テストプロジェクトの設定に設定をコピーしてから、テストがうまくいった。

+0

これはあなたのweb.configにあります。 "configuration" - > "configSections"で??? – Zachary

+0

@ Zachary、私はRonaldが要素を持たないかもしれないと思います。 – Jethro

+0

キーの代わりにインデックス0を使用するとどうなりますか? –

答えて

0

私はテストを別のプロジェクトで実行していましたが、テストはテストしていたプロジェクトのapp.configではなく、テストプロジェクトのconfigファイルからテストを読み込んでいました。私はテストプロジェクトの設定に設定をコピーしなければならず、テストがうまくいった。

0
var reportRecipients = ConfigurationManager.AppSettings["Overdue_Report_Recipients"].ToString(); 

アップデート。

私はちょうど自分のコードで.ToString()の必要はなく、あなたが持っているものは正常に動作するはずだと指摘しました。

確認するには、web.configを次のようにする必要があります。 ASP.NETを使用して

<?xml version="1.0"?> 
<configuration> 
    <appSettings> 
    <add key="Overdue_Report_Recipients" value="[email protected]"/> 
    </appSettings> 
</configuration> 
+0

OPはapp.Settingsファイルの使用に注意しましたが、ASP.NETプロジェクトにはweb.configを使用する必要があります。私はこれを私の答えに書いた。 –

2

<appSettings>セクションでは、説明するようではないapp.configweb.configファイル内になければなりません。

asp.netウェブサイトまたはウェブアプリケーション内から呼び出すと、web.configファイルが表示されます。 app.configファイルにキーを格納している場合は、nullが返されます。

必要に応じて、web.configとは別のファイルにアプリケーション設定を保存することもできます。そのためには、あなたのweb.configプットに:次に

<configuration> 
    <appSettings file="someSettingsFile.config" /> 
    ... 
</configuration> 

someSettingsFile.config中:

<appSettings> 
    <add key="Overdue_Report_Recipients" value="[email protected]"/> 
</appSettings> 

しかし私は、あなただけで間違ったファイルにappSettingsの場所を置き忘れ疑い。ちょうどあなたのweb.configに移動し、あなたは大丈夫でしょう。

+0

にはapp.configファイルを使ってこれを行う方法がありますか? –

+0

あなたはweb.config ''のような 'appSettings'セクションの外部参照としてapp.configファイルを参照しようとすることができますが、分かりにくいです。私はうまくいくはずです。 ASP.NETはweb.configファイルを常に見ていますので、セクションに別のファイルを使いたい場合は、 'file =" "'属性が必須です。 –

関連する問題