Question

Ok, donc je suis en train d'avoir fichier journal des erreurs pour le site en cours d'exécution sur ASP.net et C #.

J'ai essayé le stockage de conduire avec chemin régulier. S'attendre parce qu'il est en c # code (code derrière la page), il reprendra le serveur et y stocker. (A la fin, il est un code qui est exécuté sur le serveur)

Unfortunatelly pour moi thats pas vrai. Il est enregistré sur la machine locale à partir de laquelle le client ouvre le site.

Comment pouvez-vous forcer à enregistrer sur la machine serveur?

Je veux tous les journaux d'erreur sur un seul endroit. Toutes les suggestions sur la lecture ou comment le faire.

   string path = "C:\\WebSite";
   string error = "error";          
   try
    {
      // check if dir exists if it does i add file name to the path
      // i removed code to keep it simple
      path += "\\logs.txt";

      FileStream log_fs = 
              new FileStream(path, FileMode.Append, FileAccess.Write);
      StreamWriter log_sw = 
              new StreamWriter(log_fs);
      string log = String.Empty;

      // formate log string using error message

      log_sw.Write(log);
      log_sw.Close();
      log_fs.Close();
   }
   catch (Exception ex)
   {
        // here I e-mail the error in case logging failed
   }

Ce code génère le fichier sur la machine locale, au lieu du serveur

Était-ce utile?

La solution

Vous pouvez vous connecter à un emplacement sur le serveur Web (que le compte d'utilisateur ASPNET a l'autorisation d'écrire) avec le code comme celui-ci:

string log = String.Empty;

// format log string using error message

try
{
    using (StreamWriter logFile = new StreamWriter(@"C:\WebSite\logs.txt", true))
    {
        logFile.WriteLine(log);
    }
}
catch
{
    // here I e-mail the error in case logging failed
}

rédigera le fichier sur le serveur Web qui héberge le site. Maintenant, si vous utilisez le site au cours du développement local et que vous utilisez soit le serveur Web intégré VS ou IIS, puis bien sûr le fichier sera créé sur votre machine lors du test du site local.

Autres conseils

Pour répondre à la partie de suggestion de votre question, avez-vous envisagé d'utiliser ELMAH , il enregistrera des erreurs à différents stockages:

Microsoft SQL Server Oracle (OracleErrorLog) fichier de base de données SQLite (version 3) Microsoft Access (AccessErrorLog) VistaDB (VistaDBErrorLog) fichiers XML en vrac RAM (en mémoire)

ou envoyer par e-mail, twitter

ELMAH est très facile à installer et très efficace

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top