无法在共享测试服务器上写入web.config(实时)

时间:2015-03-18 13:55:42

标签: c# asp.net .net iis

我想在发布到实时测试服务器后加密我的web.config文件。所以我在我的API中有一个C#方法,我通过fiddler调用一次,它应该在localhost上进行加密测试。但是,当我发布我的网站并执行相同的加密调用时,它失败并出现以下错误:

  

“加载配置文件时出错:请求类型为'System.Security.Permissions.FileIOPermission,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的权限失败。(machine.config) “

我对我要发布的wwwroot有完全访问权限。我通过将.txt文件写入目录并删除它来测试它。

由于我无法在活动框上进行调试,因此我在DoEncryption类中抛出了异常,我怀疑以下代码但不知道要改变什么,因为它在localhost上工作正常:

               var exeConfigName = AppDomain.CurrentDomain.BaseDirectory + "Web.config";
           Open the configuration file and retrieve the connectionStrings section.
           Configuration config = ConfigurationManager.OpenExeConfiguration(exeConfigName);//suspect here!!!
           throw new Exception("after connection open");//i do not get this message possibly because of the above line of code

任何帮助或指示

1 个答案:

答案 0 :(得分:4)

我的猜测是你的路径无效:

var exeConfigName = AppDomain.CurrentDomain.BaseDirectory + "Web.config";

可能会解析为

Path\DirectoryNameWeb.config

尝试使用:

var exeConfigName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory ,"Web.config");

这基本上可以做到:

var exeConfigName = AppDomain.CurrentDomain.BaseDirectory + "\\Web.config";

我现在无法测试,但看看它是否有帮助!