Ошибка LogParser в WebApp - PullRequest
       40

Ошибка LogParser в WebApp

0 голосов
/ 07 октября 2009

Я разработал приложение WinForms, которое показывает пропускную способность одного сайта IIS с использованием LogParser. Это сработало довольно хорошо.

Я сейчас написал то же самое в ASP.net, но затем выдается следующее исключение: Не удается найти файл, соответствующий «C: \ inetpub \ logs \ LogFiles \ W3SVC4 \ ex * .log»

Исключение имеет смысл, поскольку все наши файлы журналов имеют префикс «u_ex», а не «ex» (я полагаю, настройки IIS по умолчанию). Просто странно, что он работает, когда запускается из приложения WinForms, а не когда помещается в WebApp.

Кто-нибудь знает, почему это происходит и как я могу это исправить?

Спасибо!

Вот фрагмент кода, который я использую:

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()); 
// ...

}

1 Ответ

0 голосов
/ 07 октября 2009

Есть ли у AspNet разрешения на доступ к папке C: \ inetpub \ logs \ LogFiles \ W3SVC4 \? Эта ошибка обычно возникает, когда файл не существует ИЛИ среда выполнения не имеет разрешений. Как приложение Asp.Net вы должны убедиться, что учетная запись AspNet имеет доступ к этой папке, или запустить веб-сайт под другой учетной записью, которая имеет доступ.

Этот пост может помочь.

У пользователя ASPNET нет прав на запись во временные файлы ASP.NET

...