2010-09-09 188 views
1

我正在使用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

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

您没有写权限到该文件夹​​,这是非常合情合理的;你不应该有写入权限的文件夹,至少你可能不应该。

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

+1

但他*不*写入该文件夹(至少给了他给我们的代码)。 – 2010-09-10 00:09:26

+0

@Kirk Woll'serializer.Serialize(writer,p);'? – 2010-09-10 16:37:00

+0

但是该作者的路径包含“\ public_html \”,不是?而异常中的错误不包括该文件夹。 – 2010-09-10 16:43:50

0

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

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

总之,如果你想保存文件,你将需要安排一个应用程序可写目录(并且可能比中等ASP.Net信任更大)。

0

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

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

工作得很好!在询问主机提供商8次后,他们可以告诉我正确的一个

非常感谢你!

相关问题