0

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

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

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

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

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

4

2 回答 2

2

简短的回答:在中等信任中是不可能的。

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

总结:使用 XML/XSLT 解析。

于 2012-09-12T18:23:28.670 回答
0

这是一种中等信任度的方法

http://www.mvcforum.com/blog/2012/9/updating-appsettings-in-the-webconfig-in-medium-trust/

于 2012-09-13T04:26:12.273 回答