J'ai posé une question au sujet de la création d'un enregistreur IIS, mais je suis encore avoir quelques problèmes:problèmes IHttpModule
- message d'origine est perdu
- message de réponse n'est pas capturé
Serait-il possible d'obtenir ces 2 triés?
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();
}
}
}
Mon post précédent: IIS API Monitor in a web application Merci à l'avance!
* Êtes-vous sérieux au sujet * wo rking avec un seul fichier physique dans un environnement fortement multi-threadé * de cette façon *? –
S'il vous plaît assurez-vous de marquer votre réponse dans votre autre question afin que les futurs lecteurs puissent apprendre de vos expériences. –
Je le mets juste là pour la simplicité. Mes questions ne concernent pas le multi-threading, c'est pourquoi je l'ai laissé de côté. En tout cas, j'ai marqué la réponse utile, mais pour une raison ou une autre, cela ne s'est pas reflété sur la page. Et j'ai laissé mes conclusions dans la section des commentaires pour référence future. – Raytrace