首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebApp中的LogParser失败

WebApp中的LogParser失败
EN

Stack Overflow用户
提问于 2009-10-07 06:45:09
回答 1查看 760关注 0票数 0

我已经开发了一个WinForms应用程序,它可以显示使用LogParser的单个IIS站点的带宽。这样做效果很好。

我现在已经用ASP.net编写了完全相同的东西,但随后抛出了以下异常:找不到任何与"C:\inetpub\logs\LogFiles\W3SVC4\ex*.log“匹配的文件

这个例外很有意义,因为我们所有的日志文件都以'u_ex‘为前缀,而不是'ex’(我猜是默认的IIS设置)。奇怪的是,当它从WinForms应用程序运行而不是放在WebApp中时,它确实可以工作。

有没有人知道为什么会发生这种情况,以及我如何修复它?

谢谢!

下面是我使用的代码的一部分:

代码语言:javascript
复制
private void UpdateByDateRange(DateTime dateFrom, DateTime dateTo) 
{

string siteId = Request.ServerVariables["INSTANCE_ID"]; 
LogQueryClassClass logger = new LogQueryClassClass();

COMIISW3CInputContextClass inputContext = new COMIISW3CInputContextClassClass(); 
string query = "SELECT SUM(TO_REAL(sc-bytes)) AS sentTotal, SUM(TO_REAL(cs-bytes)) AS receivedTotal FROM <" + siteId + "> WHERE TO_TIMESTAMP(date, time) >= TO_TIMESTAMP('" + dateFrom.ToString("yyyy-MM-dd HH:mm:ss") + "', 'yyyy-MM-dd HH:mm:ss') AND TO_TIMESTAMP(date, time) <= TO_TIMESTAMP('" + dateTo.ToString("yyyy-MM-dd HH:mm:ss") + "', 'yyyy-MM-dd HH:mm:ss')";

ILogRecord record = logger.Execute(query, inputContext).getRecord(); 
decimal trafficSent = decimal.Parse(record.getValue("sentTotal").ToString());

decimal trafficReceived = decimal.Parse(record.getValue("receivedTotal").ToString()); 
// ...

}
EN

回答 1

Stack Overflow用户

发布于 2009-10-07 07:14:33

AspNet是否具有访问C:\inetpub\logs\LogFiles\W3SVC4\文件夹的权限?当文件不存在或运行库没有权限时,通常会发生此错误。作为Asp.Net应用程序,您需要确保AspNet帐户有权访问此文件夹,或者使用其他有权访问的帐户运行网站。

这篇老文章可能会有所帮助。

ASPNET user does not have write access to Temporary ASP.NET Files

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1529906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档