无法在中等信任的Web.Config中编辑AppSetting?

时间:2012-09-12 17:49:51

标签: asp.net-mvc asp.net-mvc-3 web-config medium-trust

我正在尝试更新以中等信任度运行的MVC3应用中的web.config中的appSetting。我一打电话就失败了吗?

var config = WebConfigurationManager.OpenWebConfiguration("~");

尝试了其他变体,但它们似乎都抛出了这个错误。

System.Security.Permissions.FileIOPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089′ failed.

任何人都知道如何以中等信任的方式做到这一点?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

简短回答:中信托不可能。

答案很长:web.config实际上从机器级web.configs继承了一堆设置。因此,当您访问配置& AppSettings类打开一个给定的.config文件,它是只读的(因为这是系统允许你做的),但是在尝试编写时会抛出FileIO权限,因为类必须确定它们具有的调用堆栈的某个地方在写入新设置之前写入正确配置(文件夹,继承或机器级别)的权限(取决于其中在继承层次结构中设置的设置)。 注:这本来是在.NET4中修复的......我记得在Microsoft Connect网站上看​​到了一个关于它的链接。

摘要:使用XML / XSLT解析。

答案 1 :(得分:0)