Existe-t-il un événement dans lequel je peux puiser dans Global.asax pour exécuter du code SQL dans ADO.NET à des fins de journalisation à chaque fois qu'une demande est envoyée à l'application?Global.asax and Logging
Répondre
La plupart du temps, vous pouvez obtenir les informations sur la demande dans les journaux IIS. Vous pouvez utiliser logparser qui fournit des fonctionnalités SQL pour demander ce que vous voulez.
Pour ajouter plus d'informations à IIS journaux que vous pouvez utiliser Response.AppendToLog
Pour saisir toute demande d'une application, vous pouvez utiliser l'événement Application_BeginRequest du Global.asax
Il existe de meilleurs moyens de le faire, mais appelez ce que vous voulez dans Begin_Request.
Plus précisément:
protected void Application_BeginRequest(object sender, EventArgs e)
{
//Do something at the beginning of every request.
}
Je pense que vous devez enquêter sur HttpModules (2) (3).
Je voulais juste faire ce .LogRequest + = new EventHandler (global_asax_LogRequest); Mais alors je reçois un "Cette opération nécessite le mode pipeline intégré IIS." Je suppose que la société à laquelle je travaille actuellement utilise ASP.NET sur IIS6 et certains sur IIS7. Pensées? – BuddyJoe
Ouais - Je l'ai déjà vu :) http://stackoverflow.com/questions/186548/iis6-httpmodule-this-operation-requires-iis-integrated-pipeline-mode – annakata
Comment demanderais-tu alors le chemin complet de la page demandée moins le chemin du serveur? Ensuite, demandez le nom du serveur dans une variable séparée. Est-ce que j'obtiens ceci à travers deux des ServerVariables? – BuddyJoe
Dans ASP.NET Request.Url.PathAndQuery donnera l'URL complète - Nom de domaine. Request.Url.Host - donnera l'hôte Dans les journaux IIS cs-uri-query - Donnera l'URI - Serveur cs-host - donnera le nom de domaine – Ramesh