在控制台应用程序上为 XML 文件设置 ELMAH

本文关键字:XML 文件 设置 ELMAH 程序上 控制台 应用 应用程序 | 更新日期: 2023-09-27 18:30:42

我正在尝试在我的控制台应用程序中使用 ELMAH。 我只是想学习绳索,所以请原谅我的 .net 缺乏经验。 我只想创建一个非常简单的控制台应用程序并使用ELMAH登录XML文件。 我已经从NuGet下载并安装了"Elmah on XML Log"。所以,我认为它在我的参考文件夹中处于活动状态。我已按照此链接中的说明进行操作:

当然,我已经稍微修改了一下以使用XML。

<?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>

但是在我的主程序中,我无法访问参考并开始使用 ELMAH。 这是我非常简单的代码:

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
    }
}
}

我在这里错过了什么? 提前感谢.Net n00bie。

也许,以下错误可能会有所启发:

错误 1 找不到类型或命名空间名称"Elmah"(是否缺少 using 指令或程序集引用?

警告 2 无法解析引用的程序集"Elmah",因为它依赖于"System.Web,版本=4.0.0.0,区域性=中性,公钥令牌=b03f5f7f11d50a3a",这不在当前目标框架中"。NETFramework,版本=v4.0,配置文件=客户端"。请删除对不在目标框架中的程序集的引用,或考虑重定向项目。 Test_004

警告 3 无法解析引用的程序集"Elmah",因为它依赖于"System.Data.OracleClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",这不在当前目标框架中"。NETFramework,版本=v4.0,配置文件=客户端"。请删除对不在目标框架中的程序集的引用,或考虑重定向项目。Test_004

在控制台应用程序上为 XML 文件设置 ELMAH

我的猜测是您需要更改控制台应用程序以使用完整的框架而不是客户端框架。您可以从控制台应用程序的属性页面执行此操作(我认为它是构建选项卡,但我无法检查,因为我没有在这里安装 VS)。

ELMAH是为 ASP.NET 应用程序设计的,而不是控制台应用程序。

但是,这里有一个类似的问题,其中包含有关如何将其用于控制台应用程序的一些建议。