2012年3月29日 星期四

How To Use ULS Viewer To Show SharePoint 2010 Logs (如何使用ULS Viewer針對SharePoint 2010 進行簡易偵錯)

ULS Viewer 是用來檢視SharePoint記錄檔一個很好用的小工具,各位可以在以下的網址下載:http://archive.msdn.microsoft.com/ULSViewer/Release/ProjectReleases.aspx?ReleaseId=3308

一般來說要Debug SharePoint的錯誤,不外乎就是檢視log,或是當客製化錯誤程式發生錯誤時,就直接使用VS2010進行Debug,而ULS Viewer是一個很簡單好用的Log檢視器,只需要將此小工具COPY到SERVER上,直接執行即可。

image

ULS 預設抓取的SharePoint 2010 Log所在的檔案路徑如下:C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\LOGS,你可以點選:File –> Open From –> ULS

image

在Setup視窗中,確認Log來源的路徑是正確的,若是SharePoint 2010 的Log路徑曾經客製化的話,那麼可以點選第二個選項,來決定正確的路徑位置,如下圖所示:

image

按下OK之後,就會開始進行Log的紀錄,此時在ULS RealTime中預設會記錄所有類型的Log,此時或是想要檢視不同類型的訊息,可以設定下圖的四個選項,由左至右分別為:

  • VerboseEX Message
  • Verbose Message
  • Medium Message
  • High Message

image

當然最方便的是可以自己自訂顯示欄位,或是設定條件,例如:按下ToolBar中的Filter,設定某一個要監控某一個ID的資訊LOG,Correaltion 為 85a777bf-2be2-4a95-af88-404e224d1b43的條件

image

根據條件會自動篩選符合的LOG資訊:

image

2012年3月13日 星期二

How To Use SharePoint Dispose Checker Tool (如何使用SPDisposeCheck工具檢測SharePoint 2010)

微軟官方提供的 SharePoint 程式撰寫規範,可參考如下網址之內容:

http://blogs.msdn.com/b/rogerla/archive/2008/02/12/sharepoint-2007-and-wss-3-0-dispose-patterns-by-example.aspx#SPDisposeCheckID_210

另外,在開發SharePoint API時也可以使用以下工具來檢測,撰寫的程式是否有問題,規則或用法是否有誤…等等,這個好用的工作叫做:SharePoint Dispose Checker Tool,以下是下載的網址:

SharePoint Dispose Checker Tool

http://archive.msdn.microsoft.com/SPDisposeCheck

1. 當下在完成,開始執行安裝,會有一個畫面可以選擇安裝的功能,一個是當作VS2010的增益集工具,另一個是自動在專案建置後,順便執行程式碼檢核,如下圖所示:

image

2. 安裝完成之後,開啟VS2010可以看到已經安裝完成的工具:SPDisposeCheck,先設定VS2010中的SPDisposeCheck

image

3. 新增一個SharePoint WebPart專案,在WebPart中撰寫叫用Server API 物件程式

image

4. 使用SharePoint.dll呼叫Server API 物件來進行程式碼檢測,以下我們來檢測兩段簡易的SPWeb物件程式碼,首先第一段是正確的寫法:

image

5. 開啟VS2010中的SPDisposeCheck,設定相關選項後,按下Save and Analyze:

image

因為這段程式碼是遵守規範的,所以並沒有錯誤訊息警示:

image

6. 第二段程式是不正確的寫法,當建置後SPDisposeCheck會檢測到這段程式不符合程式撰寫規範,因此會出現提示的警示訊息,如下圖所示:

image

當SPDisposeCheck進行程式碼檢測時,會發現以下錯誤訊息:

SPDisposeCheckID_645: Dispose should not be called on this object.
Initial Assignment: site := Microsoft.SharePoint.SPContext.get_Current().{Microsoft.SharePoint.SPContext}get_Site() For more information, visit
http://blogs.msdn.com/rogerla/archive/2008/02/12/sharepoint-2007-and-wss-3-0-dispose-patterns-by-example.aspx#SPDisposeCheckID_645        0    1    SharePointSPDisposeCheck

image

因此,若是開發SharePoint 應用程式,亞當斯建議可以使用這個不錯用的程式碼檢測小工具來偵測您的寫法是否有遵守微軟建議的開發規範,以避免不必要的錯誤發生。