3

我有一个处理传入邮件的电子邮件侦听应用程序,具体取决于电子邮件所在的“桶”(或队列)。每个桶的设置之一是“自动回复”。如果 AutoRespond 为真,我会向发件人发回一封确认电子邮件。

但是,当我更改 AutoRespond 设置时,它似乎没有生效。我熟悉在控制器上设置 OutputCache,但下面的这个逻辑来自我的电子邮件监听服务 cs 文件。

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

即使我可以看到它在数据库中设置为 False,这个 if 语句仍然评估为 True。如果我重新启动我的电子邮件收听服务,一切都很好,并且这个 if 语句的评估是正确的。有任何想法吗?

4

2 回答 2

1

问题可能是当应用程序启动时从数据库中读取设置......然后它们可能存储在静态变量或应用程序状态字典中。如果是这种情况,您可以通过编写一个管理页面来解决它,该页面在更改设置后强制从数据库重新加载设置。

于 2012-06-21T22:44:56.490 回答
1

您还可以尝试 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 回答