在 ASP.NET MVC 3 Web 应用程序中,我遇到的问题是 web.config
文件中的设置被完全忽略并应用默认值。文件的相关部分如下:
...
<configuration>
<configSections>
<section name="MyProject.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=..." requirePermission="false" />
...
<applicationSettings>
<MyProject.Properties.Settings>
<setting name="MySetting" serializeAs="String">
<value>MyValue</setting>
</setting>
...
我确保项目名称正确,并且还验证了网络服务器用户是否有权访问该文件(使用 ProcessMonitor
监视访问)。
我还检查了this post ,但没有进一步发展。是否还有其他可能会忽略 web.config
设置的情况?我对上面显示的方法从未遇到过任何问题(即引用一个或多个配置部分),但今天我们花了几个小时试图解决这个问题,但我们看不出我们错在哪里。
更新1
按照@jbl的评论,我尝试访问设置如下:
((ClientSettingsSection)ConfigurationManager.GetSection( "applicationSettings/MyProject.Properties.Settings" )).Settings.Get("MySetting")
不幸的是,在本地测试中,这(也)按预期工作,但在服务器上,再次使用默认值,并且忽略了 web.config 中 applicationSettings 下的值。
更新2
从 IIS 删除 Web 应用程序并创建新应用程序也不起作用。
最佳答案
我的情况的答案很简单,因为我现在很尴尬,我只是感到高兴,不是我一个人忽视了问题所在:
- WCF Web 服务端点有几个类似的条目
- 我在服务器上使用的 web.config 版本不是最新的
- 正在使用的 web.config 中有四个条目,最新的有五个
- 我只遇到了缺少最新条目的问题,不幸的是,在我的例子中,该条目首先在代码中使用
- 由于编译到二进制文件中的默认设置,我确实得到了一个值,但不是我期望的值
当我用缺少的设置更新文件后,一切都工作正常,很抱歉给您带来了困惑(至少让我损失了 50 分......)。
关于.net - web.config 忽略 Settings.Default.<Property> 并始终使用默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19097211/