您可以使用 Visual Studio 偵錯工具來偵錯 SharePoint 解決方案。 當您開始偵錯時,Visual Studio 會將專案檔案部署至 SharePoint 伺服器,然後在網頁瀏覽器中開啟 SharePoint 網站的實例。 下列各節說明如何在 Visual Studio 中偵錯 SharePoint 應用程式。
啟用偵錯
當您第一次在 Visual Studio 中偵錯 SharePoint 解決方案時,對話方塊會警示您 web.config 檔案未設定為啟用偵錯。 (web.config 檔案是在您安裝 SharePoint Server 時建立的。如需詳細資訊,請參閱 使用 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 伺服器上新增並安裝解決方案。
對於工作流程,安裝工作流程組件。 您可以使用 「組合位置 」性質來變更其位置。
如果範圍是 [網站] 或 [Web] ,則會在 SharePoint 中啟用專案的功能。 WebApplication 和農場範圍中的功能尚未啟用。
針對工作流程,將工作流程與您在 SharePoint 自訂精靈中選取的 SharePoint 文件庫、清單或網站產生關聯。
備註
只有在您在精靈中選取 [自動關聯工作流程] 時,才會發生此關聯。
執行可自訂的部署後命令。
將 Visual Studio 偵錯工具附加至 Windows SharePoint Services 進程 (w3wp.exe)。 如果專案類型可讓您變更 [沙箱解決方案 ] 屬性,且其值設定為 true,則偵錯工具會附加至不同的進程 (SPUCWorkerProcess.exe)。 如需詳細資訊,請參閱 沙箱解決方案考量。
如果 SharePoint 解決方案是伺服器陣列解決方案,則啟動 JavaScript 偵錯工具。
在網頁瀏覽器中顯示適當的資源庫、清單或網站頁面。
Visual Studio 在每個工作完成後,會在 [輸出] 視窗中顯示狀態訊息。 如果無法完成工作,Visual Studio 會在 [錯誤清單] 視窗中顯示錯誤訊息。
SharePoint 專案功能
特性是可攜式且模組化的功能單元,可藉由使用網站定義來簡化網站的修改。 它也是 Windows SharePoint Services (WSS) 元素的套件,可針對特定範圍啟用,並協助使用者完成特定目標或工作。 模板會部署為特性。
當您在偵錯模式中執行專案時,部署程式會在 功能 目錄中建立資料夾,位於 \Microsoft Shared\Web server extensions\14\TEMPLATE\FEATURES%COMMONPROGRAMFILES%。 特徵名稱的格式為 專案名稱_Featurex,例如 TestProject_Feature1。
功能目錄中的解決方案資料夾包含 功能定義 檔案和 工作流程定義 檔案。 特徵定義檔案 (Feature.xml) 描述專案特徵中的檔案。專案定義檔案 (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」。
將此索引鍵值設定為 1,當您在 Visual Studio 中執行時,每當專案系統發生錯誤時,堆疊追蹤資訊就會出現在 [輸出] 視窗中。 若要停用增強型偵錯資訊,請將 EnableDiagnostics 設定回 0,或刪除值。
如需其他 SharePoint 登錄機碼的詳細資訊,請參閱 Visual Studio 中 SharePoint 工具的偵錯延伸模組。