2016年4月28日 星期四

[研究][C#] ELMAH - ASP.NET錯誤記錄模組 (Error Logging Modules and Handlers)(NuGet安裝)

[研究][C#] ELMAH - ASP.NET錯誤記錄模組 (Error Logging Modules and Handlers)(NuGet安裝)

2016-04-22
2017-01-23 更新
2017-02-06 更新
2018-03-13 更新

官方網站
https://elmah.github.io/
https://code.google.com/p/elmah/downloads/list
https://www.nuget.org/packages/elmah/1.2.2

環境:Windows Server 2012 R2 + Visual Studio 2015 with Update 2

一般網路上找到的都是 ASP.NET MVC + elmah,小弟使用 WebForm 測試。

(下圖) 先自己建立一個 ASP.NET 應用程式,在 專案 (Project,不是 方案 Solution) 上按下滑鼠右鍵,選「管理NuGet套件」

(下圖)點選「瀏覽」,點選「elmah」,點選找到的第一個,點選「安裝」按鈕

(下圖) 按下「確定」按鈕




(下圖) 方案已經加入 elmah 套件了

  (下圖) 把網站發行(佈署) 後,在網站的網址後面加上 elmah.axd,例如
http://localhost/elmah.axd
如果網站發生了 例外 (Exception),這裡就會顯示出來



********************************************************************************

elmah 預設儲存在記憶體,當 application pool 重新啟動,就全部遺失,可以考慮改安裝 elmah.sqlserver





App_Readme 目錄下 Elmah.SqlServer.sql 要自己拿去 SQL Server 建立 table (它不會建立 Database,只會建立 table )

web.config 會被修改成類似如下:

<?xml version="1.0" encoding="utf-8"?>
<!--
  如需如何設定 ASP.NET 應用程式的詳細資訊,請造訪
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.5.2" />
    <httpRuntime targetFramework="4.5.2" />
  </system.web>
  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
    </compilers>
  </system.codedom>
<elmah>
    <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="elmah-sqlserver" />
  </elmah>
<connectionStrings>
    <!-- TODO: Replace the ****'s with the correct entries -->
    <add name="elmah-sqlserver" connectionString="Data Source=****;User ID=****;Password=****;Initial Catalog=****;" providerName="System.Data.SqlClient" />  </connectionStrings>  
</configuration>

DataSource 如果是本機,可填句點;不然可填 IP
User ID 填入連線帳號
Password  填入連線密碼
Initial Catalog 是資料庫名稱

(下圖) Log 輸出到 SQL Server 的方法似乎只支援到 .NET 2.0 ~ NET 3.x,不支援 .NET 4.x


********************************************************************************

2017-01-23

Visual Studio 2015 with Update 3 用 NuGet 安裝 elmah

packages.config 檔案中可以看到多了
<package id="elmah" version="1.2.2" targetFramework="net462" />
<package id="elmah.corelibrary" version="1.2.2" targetFramework="net462" />

********************************************************************************

2017-02-06

研究用 ELMAH-1.2-SP2-bin-x64.zip 進行安裝,裡面包的 bin 只有 .NET 1.0、1.1、2.0,沒有 4.x的,建議用 NuGet 安裝。

********************************************************************************
2018-03-13  寄信給收件者

https://elmah.github.io/a/technical-notes/

<gotdotnet.elmah>
  <errorLog
    type="GotDotNet.Elmah.SqlErrorLog, GotDotNet.Elmah, Version=1.0.5527.0, Culture=neutral, PublicKeyToken=978d5e1bd64b33e5"
    connectionString="Server=.;Database=ELMAH;Trusted_Connection=True" />
  <errorMail   to="john.doe@example.com" /> 
</gotdotnet.elmah>

The minimal setting required by the error mailing module is the recipient’s e-mail address, which is specified here using the to attribute (see footnote 9)

9.You can specify more than one recipient by delimiting addresses with semi-colon (;).

Web.config 的 errorMail to 可以設定多個收件者,使用分號隔開。

(完)

相關

[研究][C#][ASP.NET] ELMAH 簡易試用 (Win 2016 + IIS + WebForm)
http://shaurong.blogspot.com/2017/02/caspnet-elmah-win-2016-iis-webform.html

[研究][C#][ASP.NET] ELMAH 簡易試用-遠端檢視 (Win 2016)
http://shaurong.blogspot.com/2017/02/caspnet-elmah-win-2016.html

[研究][C#] ELMAH - ASP.NET錯誤記錄模組 (Error Logging Modules and Handlers)(NuGet安裝)
http://shaurong.blogspot.com/2016/04/c-elmah-aspnet-error-logging-modules.html

elmah
https://code.google.com/p/elmah/

[ASP.NET][WebForm] 使用 ELMAH 捕捉 Exception 記錄
https://dotblogs.com.tw/yc421206/archive/2014/05/22/145209.aspx

Logging Error Details with ELMAH (C#)
http://www.asp.net/web-forms/overview/older-versions-getting-started/deploying-web-site-projects/logging-error-details-with-elmah-cs

如何偵錯--ELMAH 絕妙的偵錯工具安全架設於ASP.NET MVC
http://demo.tc/post/606

ASP.NET保安系列 - 關於elmah.axd的安全設定
http://blog.darkthread.net/post-2011-03-10-elmah-axd-security.aspx

如何在 ASP.NET MVC 4 套用 ELMAH 錯誤紀錄模組
http://blog.miniasp.com/post/2013/03/12/ASPNET-MVC-4-and-ELMAH-Integration.aspx

Asp.net MVC 必裝NuGet套件Elmah(16)
http://marco.easyusing.com/2013/11/aspnet-mvc-nugetelmah16.html

Configuring Elmah on Winhost
by Rei Tu October 31st, 2013
http://blog.winhost.com/configuring-elmah-on-Winhost/
這篇,ELMAH-1.2-SP2-bin-x64.zip 裡面包的 bin 只有 .NET 1.0、1.1、2.0,沒有 4.x的,實測拿到.NET 4.x 方案上使用會出錯。

如何替 ELMAH 錯誤紀錄頁面加上 IP 來源限制存取設定 (IIS)
http://blog.miniasp.com/post/2014/06/15/IP-Security-limit-on-ELMAH-in-IIS-7-and-above.aspx

沒有留言:

張貼留言