가 나는 IIS 로거를 생성에 관한 질문을했지만, 여전히 문제의 몇 데 :IHttpModule 문제
- 원래 메시지가
- 응답 메시지가
캡처되지 않은 손실을 이 2 가지를 정리하는 것이 가능한가?
을 IHttpHandler :
using System.Web;
using System.IO;
namespace MyLogger
{
public class MyHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.Write("The page request is " + context.Request.RawUrl.ToString());
StreamWriter sw = new StreamWriter(@"C:\requestLog.txt", true);
sw.WriteLine("Page requested at " + DateTime.Now.ToString() + context.Request.RawUrl);
sw.Close();
}
public bool IsReusable
{
get
{
return true;
}
}
}
}
IHttpModule :
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.IO;
namespace MyLogger
{
public class MyModule : IHttpModule
{
public InterceptorModule()
{ }
public void Init(HttpApplication objApplication)
{
// Register event handler of the pipe line
objApplication.BeginRequest += new EventHandler(this.ContextBeginRequest);
objApplication.EndRequest += new EventHandler(this.ContextEndRequest);
}
public void Dispose()
{
}
public void ContextEndRequest(object sender, EventArgs e)
{
StreamWriter sw = new StreamWriter(@"C:\requestLog.txt", true);
sw.WriteLine("End Request called at " + DateTime.Now.ToString()); sw.Close();
}
public void ContextBeginRequest(object sender, EventArgs e)
{
StreamWriter sw = new StreamWriter(@"C:\requestLog.txt", true);
sw.WriteLine("Begin request called at " + DateTime.Now.ToString()); sw.Close();
}
}
}
내 이전 게시물 : 사전에 IIS API Monitor in a web application 감사합니다!
당신이 심각한 * 있습니까 * WO에 대한 : 7+
여기는 다시 코드) 통합 과도하게 멀티 쓰레딩 된 환경에서 하나의 실제 파일을 사용하여 rking * 할 수 있습니다. –
미래의 독자가 귀하의 경험을 통해 배울 수 있도록 귀하의 다른 질문에 답을 표시하십시오. –
나는 단순함을 위해서 거기에 올려 놓을 뿐이다. 내 질문은 멀티 스레딩과 관련이 없으므로이를 생략했습니다. 어쨌든 나는 대답을 유용하게 표시했는데 어떤 이유로 그것이 페이지에 반영되지 않았다. 그리고 나는 나중에 참조 할 수 있도록 코멘트 섹션에 내 결과를 남겼습니다. – Raytrace