Asp.net mvc 3 为什么我的MVC应用程序会缓存此设置?

Asp.net mvc 3 为什么我的MVC应用程序会缓存此设置?,asp.net-mvc-3,caching,entity-framework-4,Asp.net Mvc 3,Caching,Entity Framework 4,我有一个电子邮件监听应用程序,它根据电子邮件所在的“桶”(或队列)来处理传入的邮件。每个存储桶的设置之一是“自动响应”。如果AutoRespond为true,我将向发件人发送一封确认电子邮件 但是,当我更改自动响应设置时,它似乎没有生效。我熟悉在控制器上设置OutputCache,但下面的逻辑来自我的电子邮件侦听服务cs文件 if (myObject.Bucket.AutoRespond) { SendEmailConfirmation(someArgs); } 即使我可以在数据库中看

我有一个电子邮件监听应用程序,它根据电子邮件所在的“桶”(或队列)来处理传入的邮件。每个存储桶的设置之一是“自动响应”。如果AutoRespond为true,我将向发件人发送一封确认电子邮件

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

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

即使我可以在数据库中看到它被设置为False,这个if语句的计算结果仍然是True。如果我重新启动我的电子邮件侦听服务,一切正常,并且这个If语句的计算结果正确。有什么想法吗?

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

您也可以尝试web.config应用程序设置,更改值会自动重新启动应用程序(不确定这对您是否可行,但还是另一个选项)

web.config:

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

我认为您需要提供一些有关如何填充
myObject
及其
Bucket
属性的详细信息。此外,我认为这与OutputCache无关。我知道这与OutputCache无关;我刚才提到了,所以人们没有提出这个建议。给我们Bucket类的代码。这是其他课程的列表吗?谢谢,但这远远不实用。AutoRespond是为每个Bucket对象存在的数据库值。我不打算创建2打配置设置;一桶一个。EF4应该处理这个问题。
bool autoRespond = false;
bool.TryParse(System.Configuration.ConfigurationManager.AppSettings["AutoRespond"], out autoRespond);