[已解决问题] 关于写权限的问题!
提问时间: 2008-04-24 11:17
悬赏分:50 浏览:181 次

很奇怪的问题。

使用 test.aspx 页面

    在里面 写 log.txt(此文件在根目录下) 没有问题,可以写入、改写。

使用 global.asax 中的   Application_Start 事件中

   写 log.txt。 报错。

对路径“d:\hosts\120r\web\log.txt”的访问被拒绝。

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.UnauthorizedAccessException: 对路径“d:\hosts\120r\web\log.txt”的访问被拒绝。

ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。

若要授予 ASP.NET 对文件的写访问权,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。

 一样的代码! 只是操作的时间 不通 为什么不行! 是那里的权限 有问题吗?

代码如下。很简单。

   using(StreamWriter sw1 = new StreamWriter(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"log.txt"),true,System.Text.Encoding.Default))
   {

    sw1.WriteLine("start");
    sw1.Close();
   }

高人们 给 指点一下。


提问者:shengnet - 初学一级
所有回答(3)

System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"log.txt"
换成
HttpContext.Current.Server.MapPath("/log.txt")
试试看。
3个月前   回答者:deerchao - 大侠五级
可能是启动问题吧
虽然有点忘了,不过,你可以找找看
ASP.NET 在启动的时候, IIS 和 .NET  之间调用的状态, 


另外,要编写日志,建议,查看 .NET 里内置的 日志记录功能,
3个月前   回答者:G yc {Son of VB.NET} - 小虾三级
給hosts目錄授予ASPNET權限就可以了,子目錄要繼承此權限
3个月前   回答者:jimeper - 菜鸟二级
评论
3个月前   shengnet :
晕。感谢回答。
 
但是 在Application_Start 事件 中 HttpContext.Current 没有值。

   您需要登录以后才能回答!
我的问题    我要提问


快到期问题

> 问题排行榜

有不合适内容,建议去除