2012-04-09 2 views
1

Ich versuche ELMAH in meiner Konsolen-App zu verwenden. Ich versuche nur, die Seile zu lernen, also entschuldige meine .net Unerfahrenheit. Ich möchte nur eine sehr einfache Konsole App erstellen & ELMAH für die Anmeldung in XML-Dateien verwenden. Ich habe & "Elmah on XML Log" von NuGet heruntergeladen. Also, es ist aktiv in meinem Referenzordner, denke ich. Ich habe die Anweisungen in this link:Einrichten von ELMAH in Konsolen-Anwendungen für XML-Dateien

befolgt Natürlich habe ich es leicht geändert, um XML zu verwenden.

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <sectionGroup name="elmah"> 
     <section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah"/> 
     <section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" /> 
     <section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" /> 
    <section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah"/> 
    <section name="errorTweet" requirePermission="false" type="Elmah.ErrorTweetSectionHandler, Elmah"/> 
    </sectionGroup> 
</configSections> 
<elmah> 
<security allowRemoteAccess="yes" /> 
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="C:\temp\elmah_logs\" /> 
</elmah> 
<system.web> 
<httpModules> 
    <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/> 
</httpModules> 

<httpHandlers> 
    <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" /> 
</httpHandlers> 
</system.web> 
<location path="elmah.axd"> 
<system.web> 
    <authorization> 
    <deny users="?"/> 
    </authorization> 
</system.web> 
</location> 

Aber in meinem Hauptprogramm, kann ich nicht den Verweis zugreifen und ELMAH mit starten. Hier ist mein sehr einfacher Code:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Xml; 
using Elmah; // Complains that missing a directive or assembly 

namespace Test_004 
{ 
class Program 
{ 
    static void Main(string[] args) 
    { 
     int y = 4; 
     int z = 0; 
     try 
     { 
      var x = y/z; 
     } 
     catch (Exception ex) ErrorSignal.FromCurrentContext().Raise(ex); // because of above, this fails 
    } 
} 
} 

Was fehlt mir hier? Vielen Dank im Voraus von .Net n00bie.

Vielleicht ist es die folgenden Fehler möglicherweise etwas Licht:

Fehler 1 Der Typ oder Namespace-Name ‚Elmah‘ konnte nicht gefunden werden (möglicherweise fehlt eine using-Direktive oder ein Assemblyverweis?)

Warnung 2 Die referenzierte Assembly "Elmah" konnte nicht aufgelöst werden, weil sie eine Abhängigkeit von "System.Web, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a" hat, die sich nicht im aktuellen Framework ".NETFramework" befindet , Version = v4.0, Profil = Client ". Entfernen Sie Verweise auf Assemblys, die nicht im ausgerichteten Framework enthalten sind, oder ziehen Sie eine Neuausrichtung Ihres Projekts in Betracht. Test_004

Warnung 3 Die referenzierte Assembly "Elmah" konnte nicht aufgelöst werden, weil sie eine Abhängigkeit von hat "System.Data.OracleClient, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089", die nicht in der aktuell Zielgerüst ".NETFramework, Version = v4.0, Profil = Client". Entfernen Sie Verweise auf Assemblys, die nicht im ausgerichteten Framework enthalten sind, oder ziehen Sie eine Neuausrichtung Ihres Projekts in Betracht. Test_004

+1

Haben Sie Elmah in Ihrem Referenzordner? – Joe

+0

Ja, das tue ich. Ich habe das Paket von Nuget installiert und aktiviert. –

Antwort

3

Meine Vermutung wäre, dass Sie Ihre Konsolenanwendung ändern müssen, um das gesamte Framework und nicht das Client-Framework zu verwenden. Sie können dies von den Eigenschaftenseiten der Konsolenanwendung aus tun (ich denke, es ist die Build-Registerkarte, aber ich kann es nicht überprüfen, da ich VS nicht hier installiert habe).

+0

Doh! Danke, dass du das herausgebracht hast. Ich kann nicht glauben, dass ich so unwissend war. –

-1

ELMAH ist für ASP.NET-Anwendungen konzipiert, nicht für Konsolenanwendungen.

Es gibt jedoch eine ähnliche Frage here mit einigen Vorschlägen, wie man es für Konsolen-Apps verwendet.

+0

Ich habe diesen Beitrag gesehen, aber keine Ahnung, warum meine Intellisense nicht funktioniert? Ich verwende alle notwendigen Referenzen, aber ich bekomme immer noch Fehler. –

Verwandte Themen