-
調試 SharePoint 解決方案
可以使用 Visual Studio 調試器來調試 SharePoint 解決方案。?啟動調試后,Visual Studio 會將項目文件部署到 SharePoint Server,然后在Web 瀏覽器中打開 SharePoint 網站的一個實例。?以下各節說明如何在 Visual Studio 中調試 SharePoint 應用程序。
- 啟用調試
- F5 調試和部署過程
- SharePoint 項目功能
- 調試工作流
- 調試功能事件接收器
- 啟用增強的調試信息
啟用調試
當您首次在 Visual Studio 中調試 SharePoint 解決方案時,將會出現一個對話框,警告您 web.config 文件尚未配置為啟用調試。?(web.config 文件是在安裝 SharePoint Server 時創建的。?有關更多信息,請參見?Working with Web.config Files(使用 Web.config 文件)。此對話框為您提供了兩種選項:運行項目而不進行調試;修改 web.config 文件以啟用調試。?如果您選擇第一個選項,該項目會正常運行。?如果您選擇第二個選項,配置 web.config 文件:
- 啟用調用堆棧 (CallStack="true")
- 禁用 Visual Studio?中的自定義錯誤 (<customErrors mode="Off" />)? RemoteOnly
- 啟用編譯調試 (<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" />) ?RemoteOnly
- 禁用編譯調試 (<compilation debug="false">)
F5 調試和部署過程
在調試模式下運行 SharePoint 項目時,SharePoint 部署過程將執行以下任務:
- 運行可自定義的預先部署命令。
- 使用 MSBuild 命令來創建 Web 解決方案包(.wsp) 文件。?該 .wsp 文件包括所有必要的文件和功能。?有關更多信息,請參見解決方案概述。
- 如果 SharePoint 解決方案是場解決方案,則回收指定網站 URL 的 IIS 應用程序池。?此步驟將釋放 IIS 輔助進程鎖定的文件。
- 如果已存在早期版本的包,則收回 .wsp 文件中早期版本的功能和文件。?此步驟將停用功能,卸載解決方案包并在SharePoint Server 上刪除解決方案包。
- 安裝 .wsp 文件中當前版本的功能和文件。?此步驟會在 SharePoint Server 上添加和安裝解決方案。
- 對于工作流,安裝工作流程序集。?可以使用?Assembly Location?屬性更改程序集的位置。
- 如果作用域是網站或 Web,則激活 SharePoint 中的項目功能。?不激活場和 Web 應用程序作用域內的功能。
- 對于工作流,將工作流與您在“SharePoint 自定義向導”中選擇的 SharePoint 庫、列表或網站相關聯。
?說明 |
此關聯僅當您在該向導中選擇“是否自動與工作流關聯”時發生。 |
- 運行可自定義的后期部署命令。
- 附加 Visual Studio 調試器附加到 Windows SharePoint Services 進程 (w3wp.exe)。如果項目類型允許您更改?Sandboxed Solution?屬性,并且其值設置為?true,則調試器會附加到不同的進程 (spucworkerprocess.exe)。?有關更多信息,請參見沙盒解決方案注意事項。
- 如果 SharePoint 解決方案是場解決方案,則啟動 JavaScript 調試器。
- 在 Web 瀏覽器中顯示相應的庫、列表或網站頁。
在每個任務完成后,Visual Studio 都會在“輸出”窗口中顯示狀態消息。?如果某個任務無法完成,則 Visual Studio 會在“錯誤列表”窗口中顯示錯誤消息。
SharePoint 項目功能
功能是一個可移植的模塊化功能單元,它通過使用網站定義簡化了網站修改工作。?功能還是一個 Windows SharePoint Services?(WSS) 元素包,可以在特定的作用域內激活這些元素,以幫助用戶完成特定目標或任務。?模板將作為功能進行部署。
在調試模式下運行項目時,部署過程將在 %COMMONPROGRAMFILES%\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES 的功能目錄下創建一個文件夾。?功能名稱的格式為:項目名稱_Featurex,如 TestProject_Feature1。
功能目錄的解決方案的文件夾中包含一個功能定義文件和一個工作流定義文件。?功能定義文件 (Feature.xml) 在項目的功能。項目定義文件 (Elements.xml) 描述文件描述項目模板。?可在“解決方案資源管理器”中找到 Elements.xml,但 Feature.xml 是在創建解決方案包時生成的。?有關這些文件的更多信息,請參見?SharePoint 項目和項目項模板。
調試工作流
在調試工作流項目時,Visual Studio 會將工作流模板(取決于其類型)添加到庫或列表中。?然后,您可以通過添加或更新項來以手動方式啟動工作流模板。?之后,您可以使用 Visual Studio 調試工作流。
?說明 |
如果添加對其他程序集的引用,請確保這些程序集安裝在全局程序集緩存(GAC) 中。?否則工作流解決方案將失敗。?有關如何安裝程序集的信息,請參見Manually start a workflow on a document or item(在文檔或項上手動啟動工作流)。 |
但部署過程不會啟動工作流。?必須從 SharePoint 網站啟動工作流。?還可以通過使用客戶端應用程序(例如 Microsoft Office Word 2010)或使用單獨的服務器端代碼來啟動工作流。?使用在“SharePoint 自定義向導”中指定的某一種方法。
例如,如果您指定可以手動啟動工作流,則直接從庫或列表中的項啟動工作流。?有關如何手動啟動工作流的更多信息,請參見?Manually start a workflow on a document item(在文檔項上手動啟動工作流)。
調試功能事件接收器
默認情況下,在運行 Visual Studio SharePoint 應用程序時,將在 SharePoint Server 上自動為您激活該應用程序的功能。?不過,在調試功能事件接收器時,這會導致問題,原因是當 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 工具擴展。
?
源文檔 <http://msdn.microsoft.com/zh-cn/library/vstudio/ee231550.aspx>?