我无法在服务器的根目录中保存文件

时间:2010-09-09 23:57:05

标签: asp.net

我正在使用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'   被拒绝。

谢谢!

3 个答案:

答案 0 :(得分:0)

答案在错误消息中:“拒绝访问”

您没有该文件夹的写入权限,这非常有意义;你不应该拥有该文件夹的写权限,至少你可能不应该。

如果您需要缓存某些内容供以后使用,请使用会话进行临时存储,或与托管公司讨论如何获取长期存储的写入权限。

答案 1 :(得分:0)

Environment.CurrentDirectory是每个进程属性,很可能不是您想要的目录;在这种情况下,它是启动IIS工作进程的目录。

在任何情况下,对于典型的ASP.Net托管(与物理或虚拟服务器托管相对),您将受到代码访问安全策略以及IIS工作进程运行的IUSR帐户的权限的限制;通常这意味着非常小的权限,以便尝试限制受损或恶意网页脚本的损坏,通常远低于应用程序上传登录的权限。

简而言之,如果您想保存文件,则需要安排应用程序可写目录(并且可能还要比中型ASP.Net信任更大)。

答案 2 :(得分:0)

我发现问题是路径......

“\ hmfsw \网络\ DTCWIN107 \ MYSITE.com \的public_html \”

工作得很好!在询问托管服务提供商8次后,他们可以告诉我正确的

非常感谢你!