悬赏分:50 浏览:181 次
很奇怪的问题。
使用 test.aspx 页面
在里面 写 log.txt(此文件在根目录下) 没有问题,可以写入、改写。
使用 global.asax 中的 Application_Start 事件中
写 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();
}
高人们 给 指点一下。
|
把
System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"log.txt" 换成 HttpContext.Current.Server.MapPath("/log.txt") 试试看。 可能是启动问题吧 虽然有点忘了,不过,你可以找找看 ASP.NET 在启动的时候, IIS 和 .NET 之间调用的状态, 另外,要编写日志,建议,查看 .NET 里内置的 日志记录功能, 給hosts目錄授予ASPNET權限就可以了,子目錄要繼承此權限 |
|
3个月前 shengnet : 晕。感谢回答。 但是 在Application_Start 事件 中 HttpContext.Current 没有值。 |