3

メールが入っている「バケット」(またはキュー)に応じて、受信メールを処理するメールリスニングアプリケーションがあります。各バケットの設定の1つは「自動応答」です。AutoRespondがtrueの場合、確認メールを送信者に送り返します。

ただし、自動応答の設定を変更しても、効果がないようです。私はコントローラーでOutputCacheを設定することに慣れていますが、以下のロジックは私の電子メールリスニングサービスのcsファイルからのものです。

if (myObject.Bucket.AutoRespond)
{
    SendEmailConfirmation(someArgs);
}

このifステートメントは、データベースでFalseに設定されていることがわかりますが、まだTrueと評価されています。メールリスニングサービスを再起動すると、すべて問題なく、このifステートメントが正しく評価されます。何か案は?

4

2 に答える 2

1

web.configアプリの設定を試すこともできます。値を変更すると、アプリが自動的に再起動します(それが実用的かどうかはわかりませんが、それでも別のオプションです)

web.config:

<appSettings>
    <add key="AutoRespond" value="true" />
</appSettings>

ここにc#ロジック:

bool autoRespond = false;
bool.TryParse(System.Configuration.ConfigurationManager.AppSettings["AutoRespond"], out autoRespond);
于 2012-06-26T19:14:07.707 に答える
1

おそらく問題は、アプリケーションの起動時にデータベースから設定が読み取られることです...その後、静的変数またはアプリケーション状態ディクショナリに格納される可能性があります。この場合は、設定を変更した後、データベースから設定を強制的に再ロードする管理ページを作成することで解決できます。

于 2012-06-21T22:44:56.490 に答える