2009-06-06 21 views
21

セットアップが簡単ではありません。セットアップの設定に欠落しているステップがあるか、正しく動作していないか、実際にその目的を理解していません。ここには間違いがあります。明らかに私の問題でなければならない。私はこれを動作させないだけです。ここに私がしたことがあります。Elmahの基本セットアップの質問/問題

新しいmvcアプリケーションを作成します。 About.aspxページに以下を配置します。

<%throw new exception( "blah"); %> ここにコンテンツを入れてください。

例外を除いて黄色の画面が表示されます。

binディレクトリにelmah.dllを追加します。

Web.configファイルのconfigurationSectionsに追加:

<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" /> 
</sectionGroup> 

はのhttpHandlersセクションに次の行を追加します。

<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" /> 

は、モジュールのセクションに追加:

<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/> 

に追加ハンドラセクション:

<add name="Elmah" verb="POST,GET,HEAD" path="elmah.axd" preCondition="integratedMode" type="Elmah.ErrorLogPageFactory, Elmah"/> 

はELMAHのセクションを追加:ここで好奇心旺盛で何

<elmah> 
    <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" /> 
</elmah> 

をその文字列の「.XmlFileErrorLog」の部分は、それが「シンボルを解決できないことを示すReSharperのエラーとして赤を示すことである 『.ctor』 "私はReflectorのelmah.dllを見ると、このオブジェクトが2つのパブリックコンストラクタのいずれかに"文字列 "か" IDocumentary "のいずれかを要求することを示しています。

私はVS 2008でWindows Vista x64を実行しています.App_Dataの権限をCo_OwnerとしてEveryoneに設定します。

http://localhost:xxxx/elmah.axdページが表示されず、エラーは表示されません。 「About」ページに再びたどり着くと、まだ黄色の画面が表示され、elmah.axdにはapp_dataフォルダにエラーは表示されません。

私はとのcustomErrorsを置換し、関連するページを作成しました:

<customErrors mode="On" defaultRedirect="GenericErrorPage.htm" /> 

をカスタムページショーをまだ「エラーなし」を示していないelmah.axd。 App_dataはまだ空です! code.google.com/p/elmah/wiki/MVC

だから、私が台無しにしています:私が使用し、このセットアップを開始するためのソースとして

〜 - =マイク・= - 〜

答えて

20

チェックErrorLogModuleは(IIS7で使用される)の両方configuration/system.web/httpModules(あなたが開発のWebサーバー上にある場合に使用)とconfiguration/system.webServer/modulesに存在する場合。ここにウェブの断片があります。プロジェクトからの設定、私が現在働いている:

<?xml version="1.0"?> 
<configuration> 
    <system.web> 
     <httpModules> 
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/> 
      <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" /> 
     </httpModules> 
    </system.web> 
    <system.webServer> 
     <validation validateIntegratedModeConfiguration="false" /> 
     <modules runAllManagedModulesForAllRequests="true"> 
      <remove name="ErrorLog" /> 
      <remove name="ErrorMail" /> 
      <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" /> 
      <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" /> 
     </modules> 
    </system.webServer> 
</configuration> 

希望これは

+0

これはそれでした!ありがとうございました!これはセクションにありませんでした。 – Mike

+0

ありがとう..ドキュメントを更新する必要があります。まだ。 –

+0

私はIIS7上でIIS6の設定を使用していました(このアプリケーションは、以前はelmahのログでIIS6上で動作していました)、system.webserverモジュールが存在しないことを忘れていました。私の悪い。 –

11

に役立ちますが、このセクションを削除してください:

<elmah> 
    <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" /> 
</elmah> 

これはELMAHはただでデフォルトを使用するように設定されていることを意味します - メモリロギング。これは、ファイルのパーミッションではないことを知っているので、撮影に役立ちます。ですから、メモリ内のロギングで作業したら、xmlファイルに記録するように設定することができます。

また、このスタックオーバーフローの質問How to get ELMAH to work with ASP.NET MVC [HandleError] attribute?をチェックして、Atif Aziz自身が回答したことがあります。

HTHS、 チャールズ

1

は、私がnuget elmahelmah on XML logからインストールし、私はhttp://localhost/elmah.axdにアクセスすることができましたが、予想funcionalityを得たが、ないエラーキャプチャしませんでした。

私はAPP_DATAフォルダのIIS_IUSERSアカウントに書き込み権限を与え、HTTP 404エラーとMVCインフラストラクチャ外のエラーで動作するようになりました。しかし、それはmvc内の例外を記録しませんでした。解決策はnigetからelmah.mvcパッケージをインストールしており、すべての例外をキャプチャし始めました。

あなたの設定がOKであれば、単にnugetからelmah.mvcパッケージをインストールし、それは、MVCの内部でも、ログを格納開始すべきであるだけでなく、HTTP 404

0

問題は、このライン

<customErrors mode="On" defaultRedirect="GenericErrorPage.htm"> 

で置き換えていますそれによって

​​