Ошибка LogParser в WebApp

Я разработал приложение 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()); 
// ...

}

person Community    schedule 07.10.2009    source источник


Ответы (1)


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

Этот старый пост может помочь.

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

person David    schedule 07.10.2009