1

コンソール アプリで 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" は、現在対象のフレームワーク ".NETFramework,Version にない "System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" に依存しているため、解決できませんでした。 =v4.0,プロファイル=クライアント". ターゲット フレームワークにないアセンブリへの参照を削除するか、プロジェクトの再ターゲットを検討してください。Test_004

警告 3 参照されているアセンブリ "Elmah" を解決できませんでした。これは、現在対象となっているフレームワーク ".NETFramework" に含まれていない "System.Data.OracleClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" に依存しているためです。 ,バージョン=v4.0,プロファイル=クライアント". ターゲット フレームワークにないアセンブリへの参照を削除するか、プロジェクトの再ターゲットを検討してください。Test_004

4

2 に答える 2

3

クライアントフレームワークではなく完全なフレームワークを使用するには、コンソールアプリケーションを変更する必要があると思います。これは、コンソールアプリケーションのプロパティページから実行できます(ビルドタブだと思いますが、ここにVSがインストールされていないため確認できません)。

于 2012-04-09T20:04:18.443 に答える
-1

ELMAH は、コンソール アプリではなく、ASP.NET アプリケーション向けに設計されています。

ただし、同様の質問がここにあり、コンソール アプリでの使用方法に関するいくつかの提案があります。

于 2012-04-09T15:18:52.913 に答える