我正在使用asp.net 3.5。我正在服务器中序列化一个对象,我租用了一个托管,我想用XML以dinamic方式修改一些东西,
这是我的代码:
Stream writer = new FileStream(Environment.CurrentDirectory + @"\public_html\" + nombrearchivo.Text, FileMode.Create);
serializer.Serialize(writer, p);
这是我的错误消息:
异常详细信息: System.UnauthorizedAccessException的: 访问路径 'C:\ WINDOWS \ Syswow64资料\ INETSRV \ dasd.xml' 被拒绝。
谢谢!
答案 0 :(得分:0)
答案在错误消息中:“拒绝访问”
您没有该文件夹的写入权限,这非常有意义;你不应该拥有该文件夹的写权限,至少你可能不应该。
如果您需要缓存某些内容供以后使用,请使用会话进行临时存储,或与托管公司讨论如何获取长期存储的写入权限。
答案 1 :(得分:0)
Environment.CurrentDirectory
是每个进程属性,很可能不是您想要的目录;在这种情况下,它是启动IIS工作进程的目录。
在任何情况下,对于典型的ASP.Net托管(与物理或虚拟服务器托管相对),您将受到代码访问安全策略以及IIS工作进程运行的IUSR帐户的权限的限制;通常这意味着非常小的权限,以便尝试限制受损或恶意网页脚本的损坏,通常远低于应用程序上传登录的权限。
简而言之,如果您想保存文件,则需要安排应用程序可写目录(并且可能还要比中型ASP.Net信任更大)。
答案 2 :(得分:0)
我发现问题是路径......
“\ hmfsw \网络\ DTCWIN107 \ MYSITE.com \的public_html \”
工作得很好!在询问托管服务提供商8次后,他们可以告诉我正确的
非常感谢你!