配置值被忽略

时间:2011-01-31 20:48:19

标签: c# asp.net-mvc castle-windsor

我在global.asax.cs文件中有这个来确定是否使用了模拟通信服务。

        protected void Application_Start(object sender, EventArgs e)
        {
        bool enableMock = bool.Parse(ConfigurationManager.AppSettings.Get("EnableMock"));
        if (enableMock)
        {
            Container.AddFacility<WcfFacility>()
                .Install(Configuration.FromXmlFile("WindsorMock.config"));
        }
        else
        {
            Container.AddFacility<WcfFacility>()
                .Install(Configuration.FromXmlFile("Windsor.config"));
        }

在我的web.config文件中,我将EnableMock值设置为false

<add key="communicationServiceUrl" value="http://localhost:49421/CommunicationService.svc"/>
<add key="EnableMock" value="false"/>

问题是它仍然使用值设置为false的模拟服务,任何人都知道为什么会发生这种情况。另外,为什么当我在Application_Start中设置断点时它从未命中过?

2 个答案:

答案 0 :(得分:2)

  

另外,为什么当我在Application_Start中设置一个断点时,它从未命中过?

它永远不会被击中因为Application_Start仅在应用程序“开始”时被触发。这意味着如果您希望触发该方法,则必须在IIS中重新启动该应用程序。

另一种选择是将该特定方法移动到Application_BeginRequest方法,以确保您的解析正确。这将触发每个页面请求的查找。一旦你知道它正在工作,那么你可以将查找移动到Application_Start

答案 1 :(得分:0)

谢谢大家试图帮助我解决这个问题,但事实证明这只不过是对我的疏忽。通信服务配置文件中的EnableMock值仍然设置为true,之前我没有注意到。我没有意识到有两个配置文件。我想我还有很多东西需要了解这个项目。