.NET-Web-Service-logging mit Log4Net funktioniert nicht von separaten client

In basic .NET web service (asmx), die Baue ich lokal versuche ich zu loggen mit Log4NET in eine Datei. Dies funktioniert gut, wenn ich Feuer up-debugging-Modus in Visual Studio und testen Sie den service mit dem wsdl/test-Seiten zur Verfügung gestellt. Aber wenn ich versuche über einen separaten client (ich habe eine C# - Konsolenanwendung, um den service aufzurufen), sehe ich die erwartete Antwort, bekomme aber KEINE Protokollierung.

(Der separate client-code ist unten aufgeführt. Musste ich importieren, die einen Verweis zu der DLL erstellt der web-service.)

Ich bin ein bisschen neu in diesem, aber ich spekulieren, das Problem ist, weil außerhalb des VS-server oder IIS (das ich geblieben bin, ohne), Global.asax wird nicht verwendet (enthält meine Initialisierungs-Befehl für die Anmeldung). Aber ich brauche zum testen von einem externen client. Wie kann ich Global.asax zu initialisieren, die von der client-Anwendung Perspektive, oder wie kann ich es vermeiden zu müssen? Klingt wie Sie es lösen würden meine logging-Problem?

Global.asax in meinem web-Dienst-Projekt enthält diese Aussage:

protected void Application_Start(object sender, EventArgs e)
{
    log4net.Config.XmlConfigurator.Configure();
}

Und meine eigene client (Konsole) Anwendung sieht wie folgt aus:

static void Main(string[] args)
{
    MyWebService proxy = new MyWebService();

    MyWebService.Request request = new MyWebService.Request();
    request.Type = "Test";

    MyWebService.Response response = proxy.GetResponse(request);

    Console.WriteLine("RESPONSE CODE: " + response.StatusCode);
    Console.WriteLine("RESPONSE MSG: " + response.StatusMessage);
    Console.WriteLine("Press any key to continue...");
    Console.ReadKey(true);
}

Ich bin auch unsicher, wie ich mich ändern würde diese Konsole app zu Referenz der Visual Studio-server-Instanz (Beispiel: localhost:1583/MyWebService.asmx?op=GetResponse) anstatt eine proxy-Instanz des web-service. Ich denke, dass würde auch den trick tun, da der Visual Studio server nutzt Global.asax, Nein?

InformationsquelleAutor Ryan H | 2012-11-15
Schreibe einen Kommentar