所以在App_Start下的My FilterConfig.cs中,我有这段代码:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
var enableFilter = ConfigurationManager.AppSettings["EnableLogActionFilter"];
if (!string.IsNullOrWhiteSpace(enableFilter)
&& enableFilter.Trim().Equals("true", StringComparison.InvariantCultureIgnoreCase))
{
filters.Add(new LogActionFilter());
}
}
在Web.Config中,我在AppSettings下有一个条目,我有一个键 EnableLogActionFilter ,可以打开或关闭该功能。
当我在本地方框上通过IIS Express运行网站时,会发现更改,Application_Start会在Global.asax.cs中触发,而FilterConfig会将MVC操作过滤器添加到全局操作过滤器,并且工作正常。
但是,当我在本地IIS下运行时,更改会从Web.Config中获取,但Application_Start / FilterConfig不会再次触发?我试过回收应用程序池,但这没有帮助。
部署服务器上也发生了同样的事情。可以在IIS中的网站的“配置编辑器”部分中看到这些更改,但未添加MVC操作筛选器,因为未创建任何日志条目。在Deployment Server的事件查看器中也没有记录任何异常。有没有人遇到过这个?我花了这么多时间在这上面,并没有到达任何地方。
答案 0 :(得分:0)
首先,我是一个布偶。然后我发现我在数据库表中缺少一个配置条目,该配置条目作为除配置文件之外的第二个开/关开关。所以现在编写数据库的脚本改变了:)