J'ai développé une application WinForms qui affiche la bande passante d'un seul site IIS en utilisant LogParser. Cela a très bien fonctionné.LogParser échouant dans WebApp
J'ai maintenant écrit exactement la même chose en ASP.net, mais l'exception suivante est générée: Impossible de trouver un fichier correspondant à "C: \ inetpub \ logs \ LogFiles \ W3SVC4 \ ex * .log"
L'exception fait référence, puisque tous nos fichiers journaux sont préfixés avec 'u_ex' et non 'ex' (paramètres IIS par défaut je suppose). Il est juste étrange que cela fonctionne quand il est exécuté à partir d'une application WinForms et non lorsqu'il est placé dans une application Web.
Est-ce que quelqu'un sait pourquoi cela se produit et comment je peux le réparer?
Merci!
est ici un mandrin du code J'utilise:
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());
// ...
}
Merci pour votre réponse. Je suis assez sûr que mes droits sont corrects depuis a) La sécurité a été le premier problème que j'ai rencontré et avait corrigé avant que je rencontre ce problème. et b) L'exception fait sence (il n'y a pas de fichiers préfixés avec ex) –