【问题标题】:Web.Config changes not picked up by FilterConfig MVC4FilterConfig MVC4 未获取 Web.Config 更改
【发布时间】:2013-12-05 11:33:32
【问题描述】:

所以在 App_Start 下的我的 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 操作过滤器,因为没有生成日志条目。部署服务器的事件查看器中也没有记录异常。有没有人遇到过这个?我在这上面花了 2 个小时,但没有得到任何结果。

【问题讨论】:

  • 您的应用程序在它自己的文件夹中运行,它有自己的应用程序池? appcmd list siteappcmd list app 输出什么? (appcmd 位于文件夹 %windir%\system32\inetsrv)
  • 是的,拥有自己的应用程序池。发现了问题。我在数据库配置表中缺少一个配置条目。干杯! :)

标签: c# asp.net asp.net-mvc asp.net-mvc-4 iis


【解决方案1】:

首先,我是个布偶。然后我发现我在数据库表中缺少一个配置条目,它充当除了配置文件之外的第二个开/关开关。所以现在编写数据库更改脚本:)

【讨论】:

    猜你喜欢
    • 2013-08-31
    • 2019-03-04
    • 1970-01-01
    • 2018-08-11
    • 1970-01-01
    • 2015-07-04
    • 2019-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多