Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法写入共享测试服务器(live)上的web.config_C#_Asp.net_.net_Iis - Fatal编程技术网

C# 无法写入共享测试服务器(live)上的web.config

C# 无法写入共享测试服务器(live)上的web.config,c#,asp.net,.net,iis,C#,Asp.net,.net,Iis,我想在发布到live test Server后加密我的web.config文件。所以我在API中有一个C#方法,我通过fiddler调用过一次,它应该在本地主机上进行加密测试。但是,当我发布我的网站并执行相同的加密调用时,它会失败,并出现以下错误: 加载配置文件时出错:请求“System.Security.Permissions.FileIOPermission,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c56193

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

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

我拥有发布到的wwwroot的完全访问权限。我通过向目录中写入一个.txt文件并删除它来测试这一点

由于无法在live box上调试,我一直在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

任何帮助或指向它的指针

我猜您的路径无效:

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";

我现在不能测试它,但看看它是否有用

应用程序池帐户是否具有写入权限?不仅仅是你的账户。这应该是一个评论,因为你在猜测。@NathanOliver我也要这么说,但海报上没有代表要评论,可以说太长了,不能评论。@Basic:我们就不评论它了吗?我把它投得更高了,以帮助他获得一些代表。这是一个很好的猜测,对于那些给出深思熟虑的答案的人来说,一个小小的代表对每个人都有好处。官方的立场是“首先确定的事情,赢得50个代表”。正如你从这个答案中看到的,50个代表并不难做到(对你的答案投5票就可以了)。不幸的是,我们需要这样做来控制垃圾邮件级别。很明显,你不是来发垃圾邮件的,所以我会像@BillGregg一样帮助你。顺便说一句,有很多这样的特点。你拥有的代表越多,你就越值得信任,你就能做得越多。