我的应用程序中有一个自定义的ConfigurationSection: 通用标签

在我的web.config中 通用标签

阅读本节工作正常。我遇到的问题是,当我通过阅读本节时 通用标签

然后我继续修改Server属性: 通用标签

这不会修改web.config文件中的“服务器”属性。

注意:这需要在中等信任下工作,因此我不能使用可以正常工作的WebConfigurationManager.OpenWebConfiguration。是否有一种明确的方法告诉ConfigSection保存自身?

有帮助吗?

解决方案

简短回答-不。.NET团队(据称)打算在v4中修复此问题,但这没有发生。

原因是因为使用WebConfigurationManager.GetSection会返回嵌套的只读NameValueCollection,当您更改它们的值时它们不会持久。正如您已经正确确定的那样,使用WebConfigurationManager.OpenWebConfiguration是获得对配置的读写访问权限的唯一方法-但是,当FileIOPermission尝试将所有继承的配置加载到您的web.config时,您会抛出OpenWebConfiguration异常。-包括C:\WINDOWS\Microsoft.NET\Framework中的机器级web.config和machine.config文件,这些文件明确属于Medium Trust范围。

长答案-使用XDocument / XmlDocument和XPath获取/设置配置值。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top