對 SharePoint 方案進行偵錯
您可以使用 Visual Studio 偵錯工具對 SharePoint 方案進行偵錯。當您開始偵錯時,Visual Studio 會將專案檔部署至 SharePoint 伺服器,然後在 Web 瀏覽器中開啟 SharePoint 網站的執行個體。下列章節說明如何在 Visual Studio 中對 SharePoint 應用程式進行偵錯。
啟用偵錯
F5 偵錯和部署程序
SharePoint 專案功能
對工作流程進行偵錯
對功能事件接收器進行偵錯
啟用增強型偵錯資訊
啟用偵錯
當您一開始在 Visual Studio 中對 SharePoint 方案進行偵錯時,會出現對話方塊,提醒您 web.config 檔未設定為啟用偵錯 (安裝 SharePoint 伺服器時,便會建立 web.config 檔。如需詳細資訊,請參閱使用 Web.config 檔 (英文))。此對話方塊提供選項,讓您選擇執行專案但不偵錯,還是修改 web.config 檔以啟用偵錯。如果您選擇第一個選項,專案會正常執行。如果您選擇第二個選項, web.config 檔案:
開啟呼叫堆疊 (CallStack="true")
停用 Visual Studio 中的自訂錯誤 (<customErrors mode="Off" />)
啟用編譯偵錯 (<compilation debug="true">)
產生的 web.config 檔如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
...
<SharePoint>
<SafeMode MaxControls="200"
CallStack="true"
DirectFileDependencies="10"
TotalFileDependencies="50"
AllowPageLevelTrace="false">
...
</SafeMode>
...
</SharePoint>
<system.web>
...
<customErrors mode="Off" />
...
<compilation debug="true">
...
</compilation>
...
</system.web>
...
</configuration>
若要回復變更並停用偵錯,請變更 web.config 檔的下列 XML:
關閉呼叫堆疊 (CallStack="false")
啟用 Visual Studio 中的自訂錯誤 (<customErrors mode="On" />)
停用編譯偵錯 (<compilation debug="false">)
F5 偵錯和部署程序
當您在偵錯模式中執行 SharePoint 專案時,SharePoint 部署流程會執行下列工作:
執行可自訂的預先部署命令。
使用 MSBuild 命令建立 Web 方案套件 (.wsp) 檔。.wsp 檔包含所有必要的檔案和功能。如需詳細資訊,請參閱方案概觀 (英文)。
如果 SharePoint 方案是陣列方案,會針對指定的網站 URL 回收 IIS 應用程式集區。此步驟會釋放 IIS 背景工作處理序鎖定的檔案。
如果舊版套件已經存在,則會撤銷 .wsp 檔中的舊版功能和檔案。此步驟會停用功能、解除安裝方案套件,然後刪除 SharePoint 伺服器上的方案套件。
安裝 .wsp 檔中功能和檔案的目前版本。此步驟會在 SharePoint 伺服器上加入並安裝方案。
針對工作流程,安裝工作流程組件。您可以使用 Assembly Location 屬性變更組件的位置。
如果範圍為 [網站] 或 [Web],會在 SharePoint 中啟動專案的功能。[伺服器陣列] 和 [WebApplication] 範圍中的功能則不會啟動。
針對工作流程,將工作流程與您在 [SharePoint 自訂精靈] 中選取的程式庫、清單或網站產生關聯。
注意事項 只有在您在精靈中選取 [自動與工作流程關聯] 時,才會建立關聯。
執行可自訂的部署後命令。
Visual Studio 附加偵錯工具對 Windows SharePoint Services 處理序 (w3wp.exe)。如果專案類型可讓您變更 Sandboxed Solution 屬性,而且其值設定為 true,則偵錯工具附加至不同的處理序 (SPUCWorkerProcess.exe)。如需詳細資訊,請參閱沙箱化方案考量。
如果 SharePoint 方案是陣列方案,會啟動 JavaScript 偵錯工具。
在 Web 瀏覽器中顯示適當的程式庫、清單或網站頁面。
Visual Studio 會在每項工作完成後,於 [輸出] 視窗中顯示狀態訊息。如果工作無法完成,Visual Studio 會在 [錯誤清單] 視窗中顯示錯誤訊息。
SharePoint 專案功能
功能 (Feature) 是指一組可攜的模組化功能 (Functionality) 單元,可使用網站定義簡化修改網站的作業。它也是 Windows SharePoint Services (WSS) 項目的套件,可針對特定範圍啟動,並且協助使用者完成特定目標或工作。範本會部署為功能。
當您在偵錯模式執行專案時,部署程序會在「功能」(Feature) 目錄中建立資料夾,這個目錄的位置是 %COMMONPROGRAMFILES%\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES。功能名稱的格式為 <專案名稱>_Featurex,例如 TestProject_Feature1。
feature 目錄中的方案資料夾包含「功能定義」(Feature Definition) 檔和「工作流程定義」(Workflow Definition) 檔。功能定義檔 (Feature.xml) 在項目的 Feature.The 項目定義檔 Elements.xml () 描述檔描述專案範本。Elements.xml 可以在 [方案總管] 中找到,但 Feature.xml 則在方案套件建立時產生。如需這些檔案的詳細資訊,請參閱 SharePoint 專案與專案項目範本。
對工作流程進行偵錯
當您對工作流程專案進行偵錯時,Visual Studio 會將工作流程範本加入至程式庫或清單 (視範本類型而定)。您接著可以加入或更新項目來手動啟動工作流程範本,再使用 Visual Studio 對工作流程進行偵錯。
注意事項 |
---|
如果您將參考加入至其他組件,請確定這些組件安裝在全域組件快取 (GAC) 中。否則工作流程方案將會失敗。如需如何安裝組件的詳細資訊,請參閱手動開始文件或項目的工作流程。 |
不過,部署程序不會啟動工作流程。您必須從 SharePoint 網站啟動工作流程。您也可以使用用戶端應用程式 (如 Microsoft Office Word 2010),或是使用其他伺服器端程式碼啟動工作流程。請使用 [SharePoint 自訂精靈] 內指定的其中一個方法。
例如,如果您指定可以手動啟動工作流程,請直接從文件庫或清單中的項目啟動工作流程。如需如何手動啟動工作流程的詳細資訊,請參閱手動啟動文件項目上的工作流程。
對功能事件接收器進行偵錯
執行 Visual Studio SharePoint 應用程式時,它在 SharePoint 伺服器上的功能預設會自動啟動供您使用。不過,當您對功能事件接收器進行偵錯時,這會造成問題,因為當功能由 Visual Studio 啟動時,它會在與偵錯工具不同的處理序中執行。這表示部分偵錯功能 (如中斷點) 將無法正常運作。
若要在 SharePoint 中停用自動啟動功能並允許對功能事件接收器正常偵錯,請在偵錯之前,將專案的 [現用部署組態] 屬性值設定為 [不啟動]。然後,,在開始偵錯時所在 Visual Studio後的 SharePoint 應用程式,請以手動方式在 SharePoint 中啟動的功能。若要啟動功能,請在 SharePoint 中 [設置動作] 功能表,選取 [設置設定],選取 [管理網站功能] 連結,功能旁的 [選項] [啟動] 按鈕,繼續偵錯為正常。
啟用增強型偵錯資訊
由於 Visual Studio 處理序 (devenv.exe)、Visual Studio SharePoint 主機處理序 (vssphost4.exe)、SharePoint 和 WCF 層之間的互動有時候相當複雜,要診斷建置、部署和執行其他作業時發生的錯誤可能不容易。為協助解析這類錯誤,您可以啟用增強型偵錯資訊。若要這麼做,請至 Windows 登錄中的下列登錄機碼:
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\SharePointTools]
如果「EnableDiagnostics」 REG_DWORD 值不存在,請手動建立它。設定「EnableDiagnostics」值設定為「. "。
將此機碼值設定為 1 後,每當在 Visual Studio 中執行時發生專案系統錯誤,堆疊追蹤資訊就會顯示在 [輸出] 視窗中。要停用增強型偵錯資訊,將 EnableDiagnostics 初始頁面或刪除值。
如需其他 SharePoint 登錄機碼的詳細資訊,請參閱偵錯 Visual Studio 中 SharePoint 工具的擴充功能。