我想在发布到实时测试服务器后加密我的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
任何帮助或指示
答案 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";
我现在无法测试,但看看它是否有帮助!