LogParser를 사용하여 단일 IIS 사이트의 대역폭을 보여주는 WinForms 앱을 개발했습니다. 이것은 꽤 잘 돌아갔다.웹 응용 프로그램에서 LogParser 실패
지금 ASP.net에서 똑같은 일을 서면으로 작성했습니다,하지만 다음과 같은 예외가 발생합니다 : ": \을 Inetpub \ 로그 \ LogFiles 참고 \ W3SVC4 \ 예 * .LOG C"
을 일치하는 모든 파일을 찾을 수 없습니다우리의 모든 로그 파일은 'ex'가 아닌 'u_ex'접두어로되어 있으므로 예외가 발생합니다 (기본 IIS 설정). WinForms 응용 프로그램에서 실행할 때 작동하고 웹 응용 프로그램에 넣을 때가 아니라는 것은 이상한 일입니다.
왜 이런 일이 발생하고 어떻게 해결할 수 있는지 아는 사람이 있습니까?
감사합니다. \을 Inetpub \ 로그 \ LogFiles 참고 \ W3SVC4 \ 폴더 :
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());
// ...
}
답장을 보내 주셔서 감사합니다. 부터 내 권리가 올바르다는 것을 확신합니다. a) 보안은이 문제에 부딪 치기 전에 내가 만났던 첫번째 문제였습니다. 및 b) 예외는 sence를 만듭니다 (ex가 붙은 파일이 없음) –