Avatar billede c-sharp Nybegynder
29. september 2004 - 09:33 Der er 16 kommentarer og
1 løsning

Bliver asp.net fejl logget som default på webserveren

Hvergang der sker en fejl i asp.net koden, bliver fejlen så logget på webserveren, og hvis ja hvor?
Avatar billede snepnet Nybegynder
29. september 2004 - 09:40 #1
hej c-sharp :o)
hvilket operativsystem har du ?
Avatar billede snepnet Nybegynder
29. september 2004 - 09:45 #2
Prøv højreklik på "My Computer" og vælg "Manage".
Du kan så folde Eventvieweren ud - og kigge lidt på sagerne... det er der du kan se den slags.

i machine.config (ligger typisk her : C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG) kan du angive hvad der skal logges til eventloggen :
logLevel="Errors" kan også være All og None (det er nok All du skal forsøge dig med).

<processModel enable="true" timeout="Infinite" idleTimeout="Infinite" shutdownTimeout="0:00:05" requestLimit="Infinite" requestQueueLimit="5000" restartQueueLimit="10" memoryLimit="60" webGarden="false" cpuMask="0xffffffff" userName="machine" password="AutoGenerate" logLevel="Errors" clientConnectedCheck="0:00:05" comAuthenticationLevel="Connect" comImpersonationLevel="Impersonate" responseDeadlockInterval="00:03:00" maxWorkerThreads="20" maxIoThreads="20"/>

Jeg er ikke sikker på hvor meget der reelt havner i loggen, men det er sikkert rimelig enkelt at slå op... Et opslag på machine.config, processModel og loglevel giver sikkert nogle gode hits.

det er ikke så kompliceret at skrive i eventloggen selv.

mvh
Avatar billede c-sharp Nybegynder
29. september 2004 - 10:40 #3
Det står som du har vist (til at logge errors), men jeg kan ikke finden noget i Eventvieweren.
Avatar billede c-sharp Nybegynder
30. september 2004 - 13:17 #4
mere hjælp her, eller hvad :0)
Avatar billede snepnet Nybegynder
30. september 2004 - 17:45 #5
jo det kan du snildt få :o)

kunne du tænke dig et lille kodeeksempel på en logning af uhåndterede fejl, så du kan se dem i eventvieweren ?

mvh
Avatar billede c-sharp Nybegynder
04. oktober 2004 - 11:12 #6
Mit problem er i første omgang at jeg har tilrettet min machine.config som du har beskrevet, men jeg kan ikke finde nogle asp.net fejl i eventwieweren.
Avatar billede snepnet Nybegynder
04. oktober 2004 - 11:37 #7
jeg er som sagt heller ikke sikker på hvad der egentlig havner i loggen, men jeg kan give dig et eksempel på hvor du selv kan bestemme hvad der skal smides derind hvis du er interesseret.
(du skal så kode lidt for at få det til at dutte).
mvh
Avatar billede c-sharp Nybegynder
04. oktober 2004 - 11:39 #8
Jo tak
Avatar billede snepnet Nybegynder
04. oktober 2004 - 11:48 #9
Du kan prøve den her (husk at oprette nøglen i registry som jeg har skrevet).
(Det er i global.asax.cs du finder metoden, og hvis den ikke er der kan du oprette den selv).

mvh

protected void Application_Error(Object sender, EventArgs e)
{
    Exception ex = Server.GetLastError().GetBaseException();

    if(Settings.LogToEventLog)
    {
        try
        {
            string url = this.Request.Url.ToString();
            string refererer = this.Request.UrlReferrer.ToString();
            // virker kun hvis nedenstående nøgle findes i registry
            // HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\TestApplication
            EventLog.WriteEntry(Settings.EventLogKey,
                "MESSAGE: " + ex.Message +
                "\nSOURCE: " + ex.Source +
                "\nURL: " + url +
                "\nREFERER: " + refererer +
                "\nTARGETSITE: " + ex.TargetSite +
                "\nSTACKTRACE: " + ex.StackTrace,
                EventLogEntryType.Error);
        }
        catch
        {
        }
    }
}
Avatar billede c-sharp Nybegynder
04. oktober 2004 - 11:57 #10
Jeg øger lige pointne og spørg lidt mere hvis det er ok?

Hvis jeg nu heller vil logge i en fil, og samtidig sende en mail når der sker en fejl, hvordan gør jeg så det?
Avatar billede snepnet Nybegynder
04. oktober 2004 - 12:03 #11
ja det er bare helt fint...
Namespacet System.Web.Mail indeholder en klasse (SmtpMail) du kan benytte til at sende mails med, og hvad filskriverier angår, er det i vid udstrækning lige ud af landevejen:

// simpleste version (jeg har ikke så meget tid lige nu, så du får lige et dump fra docs ):

using System;
using System.IO;

class Test
{
    public static void Main()
    {
        // Create an instance of StreamWriter to write text to a file.
        // The using statement also closes the StreamWriter.
        using (StreamWriter sw = new StreamWriter("TestFile.txt"))
        {
            // Add some text to the file.
            sw.Write("This is the ");
            sw.WriteLine("header for the file.");
            sw.WriteLine("-------------------");
            // Arbitrary objects can also be written to the file.
            sw.Write("The date is: ");
            sw.WriteLine(DateTime.Now);
        }
    }
}
The following code example creates a new text file and writes a string to it.
[C#]
using System;
using System.IO;
public class TextToFile
{
    private const string FILE_NAME = "MyFile.txt";
    public static void Main(String[] args)
    {
        if (File.Exists(FILE_NAME))
        {
            Console.WriteLine("{0} already exists.", FILE_NAME);
            return;
        }
        StreamWriter sr = File.CreateText(FILE_NAME);
        sr.WriteLine ("This is my file.");
        sr.WriteLine ("I can write ints {0} or floats {1}, and so on.",
            1, 4.2);
        sr.Close();
    }
}

mvh
Avatar billede snepnet Nybegynder
04. oktober 2004 - 12:04 #12
(jeg vil gerne lave nogle lidt mere relevante eksempler når jeg kommer hjem hvis det er)
Avatar billede c-sharp Nybegynder
05. oktober 2004 - 08:40 #13
Nu kan jeg se at du har lavet en ny klasse til errorloggin, men hvordan får jeg fat i fejlen fra denne klasse? Jeg har prøvet at bruge denne:

Exception ex = Server.GetLastError().GetBaseException();

Men får en fejl.
Avatar billede snepnet Nybegynder
05. oktober 2004 - 08:52 #14
nej jeg har ikke lavet en ny klasse.... det er en metode der ligger i klassen Global:
public class Global : System.Web.HttpApplication
Den ligger normalt i Global.asax.cs, og du kan referere den fra resten af koden ved Global.
Men den kode jeg har sendt dig sørger bare for at logge alle de fejl du ikke har håndteret i applikationen.
(meteden bliver kaldt hvis der bobler en fejl op).

du kan sagtens bruge teknikken til at lave en metode du bare kan kalde istedet.

mvh
Avatar billede snepnet Nybegynder
05. oktober 2004 - 08:55 #15
Exception ex = Server.GetLastError().GetBaseException();
Kan du kun få noget ud af, hvis der ligger en fejl (og de fjernes ret hutigt).
mvh
Avatar billede snepnet Nybegynder
09. oktober 2004 - 15:34 #16
hej c-sharp.... kyler lige et svar her, hvis du er ok. eller sig til.
mvh
Avatar billede c-sharp Nybegynder
11. oktober 2004 - 10:42 #17
Jeg havde lige glemt den her, det må du undskylde! Tusind tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester