SharePoint 方案疑難排解
下列問題或警示可能在您使用 Visual Studio 偵錯工具對 SharePoint 方案進行偵錯時發生。如需詳細資訊,請參閱Debugging SharePoint Workflow Solutions。
本主題包含下列章節。
- 權杖限制 Sandboxed 視覺 Web 組件
- 在專案和專案項目名稱的字元限制
- 建立自訂欄位時發生錯誤
- 新的非英文網站定義不會在部署之後出現於網站建立頁面中
- 在乾淨系統上部署工作流程專案時出現錯誤
- 使用者必須在偵錯期間重新整理瀏覽器中的應用程式頁面來檢視更新影像
- 錯誤:網站位置無效
- 在事件接收器專案中未發生網站刪除 Web 事件
- 在商務資料連接模型專案中變更識別碼的名稱後出現部署錯誤
- 當您嘗試在 SharePoint 中檢視視覺 Web 組件時出現錯誤
- 當執行已匯入且可重複使用的工作流程包含工作表單欄位時,便會出現錯誤
- 當執行已重新命名且匯入的清單執行個體時出現錯誤
- IIS 終止 SharePoint 偵錯工作階段
- 自動撤銷會將失去關聯的清單執行個體留在 SharePoint 中
- 原始 SharePoint 方案會由匯出的版本所取代
- 錯誤會出現在偵錯開始
- 相關主題
權杖限制 Sandboxed 視覺 Web 組件
在沙箱化方案的視覺 Web 組件無法處理標準語彙基元,例如$SPUrl, SharePoint 執行階段支援。因此, URL 未解析,因此,您無法預覽內容檢視在視覺 Web 組件設計工具的設計檢視,如果參考它直接在指令碼項目,如下列範例所示:
<script src=”<% $SPUrl:~site/SiteAssets/ListOperations.js %>"></script>
使用常值,若要解決中的這項限制和解析語彙基元,請參考它:
<asp:literal ID="Literal1" runat="server" Text="<script src='" />
<asp:literal ID="Literal2" runat="server" Text="<% $SPUrl:~site/SiteAssets/ListOperations.js %>" />
<asp:literal ID="Literal3" runat="server" Text="' type='text/javascript' ></script>" />
在專案和專案項目名稱的字元限制
專案和專案項目名稱可以包含適用於 SharePoint 上的部署路徑有效的字元。不允許使用其他字元。
錯誤訊息
「無效字元」錯誤訊息。
解決方式
如需 SharePoint 專案和專案項目名稱,請只使用下列字元:
英數 ASCII 字元
空格
句號 (.)
逗號 (,)
底線 (_)
虛線 (-)
反斜線 (\)
當專案封裝時,驗證規則來驗證您部署中的每個檔案的部署路徑屬性只包含這些有效的字元。
建立自訂欄位時發生錯誤
在 Visual Studio,自訂欄位在 XML 中定義。使用特定格式,,,如果欄位未定義或未參考錯誤。
錯誤訊息
封裝時的「無效字元」錯誤訊息。
解決方式
如下列範例所示,欄位定義的 ID 必須是由大括號括住的 GUID:
<Field ID="{5744d18c-305e-4632-8bd1-09d134f4830d}"
Type="Note"
Name="PatientName"
DisplayName="Patient Name"
Group="A Custom Group">
</Field>.
如下列範例所示,必須定義使用空項目格式<FieldRef />(<FieldRef />),在一個內容型別的欄位使用參考開始/結束項目 (),<FieldRef></FieldRef>,不:
<FieldRef ID="{5744d18c-305e-4632-8bd1-09d134f4830d}"
Name="PatientName"
DisplayName="Patient Name"
Required="TRUE"/>
如果欄位的來源 XML 格式不正確,不是有效的 XML 檔案,也會顯示其他問題,就可能會出現「無法剖析檔案」時發生。
新的非英文網站定義不會在部署之後出現於網站建立頁面中
在您建置和部署網站定義使用 Visual Studio (也就是與地區設定 ID 的版本非英文版本的路徑之外) 之後, [SharePoint 自訂] 索引標籤不會出現在 [範本選取範圍] 方塊,而且新的網站範本不會出現在 [新的 SharePoint 網站] 頁面。
錯誤訊息
無。
解決方式
發生此問題的原因為 webtemp 網站定義組態檔 (例如,webtemp_SiteDefinitionProject1.xml) 的 [路徑] 屬性值不正確。在 [部署位置] 下方的 webtemp 檔案 [路徑] 屬性中,將 1033 變更為適當的地區設定 ID。例如,使用日文地區設定將值變更為 1041。如需詳細資訊,請參閱 MSDN 網站上的 Microsoft 所指派的地區設定識別碼 (英文)。
在乾淨系統上部署工作流程專案時出現錯誤
如果您在 Visual Studio 的工作流程專案在乾淨系統上,就會發生這個問題。乾淨系統是有 Visual Studio 新安裝和 SharePoint,但未部署之工作流程專案的電腦。
錯誤訊息
找不到 SharePoint 清單:工作流程記錄。
解決方式
發生此錯誤的原因為遺漏 [工作流程記錄] 清單。由於開發環境為乾淨系統,因此未部署任何工作流程,且 [工作流程記錄] 清單尚不存在。若要解決這個問題,請重新開啟工作流程精靈,這會導致建立 [工作流程記錄] 清單。
若要重新進入工作流程精靈
在 [方案總管],選取工作流程的。
在 [屬性] 視窗中,選取省略符號 (…) 按在含有省略符號按鈕的所有屬性。
使用者必須在偵錯期間重新整理瀏覽器中的應用程式頁面來檢視更新影像
如果您偵錯的 SharePoint 方案包含具有顯示影像之控制項 (例如,「HTML 影像」控制項) 的應用程式頁面,則您必須在瀏覽器中重新整理該頁面,以顯示對影像所做的任何變更。
錯誤:網站位置無效
這個問題可能在未安裝 SharePoint Server 2010 的情況下發生。此外也可能在您未具備 [SharePoint 自訂精靈] 中所指定 SharePoint 網站的管理員存取權時發生。
錯誤訊息
- SharePoint 網站位置無效 (SharePoint site location is not valid)。
解決方式
安裝 SharePoint Server 2010。
確認您具有 SharePoint 網站的管理員存取權。如需詳細資訊,請參閱 Office Online 文章授與入口網站的存取權 (英文)。
在事件接收器專案中未發生網站刪除 Web 事件
當您建立事件接收器專案,並選取特定的 Web 事件 (例如「正在刪除網站」) 時,事件並未發生。
錯誤訊息
無。
解決方式
之所以發生此問題,是因為功能範圍必須是「網站」才能處理網站層級事件,但事件接收器專案的預設功能範圍是 "Web"。受影響的 Web 事件包括:
正在刪除網站 (WebDeleting)
已刪除網站 (WebDeleted)
正在移動網站 (WebMoving)
已移動網站 (WebMoved)
若要修正問題,請以下列方式變更事件接收器的功能範圍。
若要變更事件接收器的功能範圍
在 [方案總管],按兩下檔案或開啟其捷徑功能表中選擇[開啟] 開啟 [功能設計工具] 的事件接收器的 .feature 檔案。
在 [範圍] 選取旁邊的箭號,然後在出現的清單的 [網站] 。
在商務資料連接模型專案中變更識別碼的名稱後出現部署錯誤
如果您在商務資料連接 (BDC) 模型中變更某個實體的識別碼名稱,然後嘗試部署方案,就會發生此問題。
錯誤訊息
<模型名稱> 有下列外部內容類型啟用錯誤 ...
名稱為 '<模型名稱>' 的 IMetadataObject 在 [名稱] 欄位中有重複的值...
解決方式
若要解決這個問題,請手動刪除模型,然後重新部署方案。您可以使用下列其中一種工具來刪除模型:
SharePoint 2010 管理中心。如需詳細資訊,請參閱 Microsoft TechNet 網站上的管理 BDC 模型。
Windows PowerShell。您可在命令提示字元輸入此命令來刪除模型:Remove-SPBusinessDataCatalogModel。如需詳細資訊,請參閱 Microsoft TechNet 網站上的一般 Cmdlet (SharePoint Server 2010)。
當您嘗試在 SharePoint 中檢視視覺 Web 組件時出現錯誤
當使用者控制項的 [路徑] 屬性不是以 "CONTROLTEMPLATES\" 字串當做開頭時,就會發生這個問題。
錯誤訊息
'/_CONTROLTEMPLATES/<專案名稱>/<Web 組件名稱>/<使用者控制項名稱>.ascx' 檔案不存在。
'/' 應用程式中的伺服器錯誤。
解決方式
若要解決這個問題
在 [方案總管],選取使用者控制項檔案,副檔名為 .ascx。
在功能表列上,選擇 [檢視], [屬性視窗]。
在 [屬性] 視窗中展開 [部署位置] 節點。
確定 [路徑] 屬性的值是以「CONTROLTEMPLATES \」字串。
當執行已匯入且可重複使用的工作流程包含工作表單欄位時,便會出現錯誤
當您匯入的工作流程包含具有欄位的工作表單,然後您從匯入它的相同系統上執行新的工作流程時,就會發生這個問題。
錯誤訊息
在「啟動功能」部署步驟中發生錯誤:在目前的網站集合或子網站中找到識別碼為 [Guid] 且定義在 [Guid] 功能中的欄位。
解決方式
這個錯誤是欄位識別碼衝突所導致的結果,發生衝突是因為 Visual Studio 中匯入可重複使用的工作流程專案無法變更工作表單欄位識別碼。如果您在包含原始工作流程的相同伺服器上匯入工作流程,就會發生欄位識別碼衝突。
若要解決這個問題,請使用 [尋找和取代] 功能來變更所有匯入之工作流程檔案中的欄位識別碼屬性值。
當執行已重新命名且匯入的清單執行個體時出現錯誤
如果您將匯入的清單執行個體重新命名,然後在 Visual Studio 中執行它,就會發生這個問題。
錯誤訊息
建置錯誤:「啟動功能」部署步驟中發生錯誤:Template\Features\[import projectfeaturename]\Files\Lists\[oldlist name]\Schema.xml 檔案不存在。
解決方式
當您匯入清單執行個體時,名為 CustomSchema 的屬性會加入至清單執行個體的 Elements.xml 檔案中。Elements.xml 包含清單執行個體之自訂 schema.xml 的路徑。當您在 Visual Studio 中重新命名清單執行個體時,自訂 schema.xml 的部署路徑會變更,但是 CustomSchema 屬性的路徑值則不會更新。因此,當啟用此功能時,清單執行個體無法在 CustomSchema 屬性所指定的舊路徑中找到 schema.xml 檔案。
若要解決這個問題,請在 CustomSchema 屬性內更新 schema.xml 檔案的部署位置路徑。
IIS 終止 SharePoint 偵錯工作階段
這個問題發生,如果您在 Visual Studio SharePoint 方案中設定中斷點,選擇 F5 鍵執行它,然後長期保持在中斷點比為秒。
錯誤訊息
Internet Information Services (IIS) 已終止正在偵錯的 Web 伺服器處理序。您可以設定應用程式集區的 IIS Ping 設定避免這個問題。如需詳細資訊,請參閱 [說明]。
解決方式
根據預設,IIS 應用程式集區會等候應用程式在 90 秒內做出回應,然後才會關閉應用程式。這個程序稱為 "Ping" 應用程式。為了解決這個問題,您可以增加等候時間,或是完全停用應用程式的 Ping 功能。
若要存取 IIS 應用程式集區設定
開啟 IIS 管理員。
在 [Connections] 窗格中,展開 SharePoint 伺服器節點,然後選取 [應用程式集區] 節點。
在 [應用程式集區] 頁面上,選取 SharePoint 應用程式集區 (通常是「SharePoint - 80 "),然後, [動作] 窗格中,選取 [進階設定] 連結。
在 IIS 逾時前要將等待時間,請變更 [Ping 最大回應時間 (秒)]的值到秒為大於的值。
若要停用 IIS Ping,請將 [已啟用 Ping] 設定為 [False]。
自動撤銷會將失去關聯的清單執行個體留在 SharePoint 中
如果您採取以下步驟,就會發生這個問題。
在 Visual Studio 中建立具有清單執行個體的清單定義。
選擇 F5 鍵執行方案。
停止偵錯,或是關閉 SharePoint 網站。
重新開啟 SharePoint 網站,並開啟清單執行個體。
錯誤訊息
'/' 應用程式中的伺服器錯誤。
解決方式
發生這個問題是因為當您關閉 SharePoint 方案的偵錯工作階段之後,自動撤銷功能會撤銷此方案。撤銷會從 SharePoint 中刪除清單定義,但是不會刪除清單的執行個體。清單執行個體需要基礎清單定義。
若要解決這個問題,請部署方案時,在功能表列上,選擇[組建], [部署]。(請勿將選擇 F5 鍵偵錯方案)。然後刪除 SharePoint 中的清單執行個體。
原始 SharePoint 方案會由匯出的版本所取代
如果您匯出 SharePoint 方案、將此方案匯入 Visual Studio 然後將此方案部署回之前匯出方案的相同網站,這樣就會取代原始 SharePoint 方案。如果您將方案部署到未啟用原始方案的伺服器,則不會發生這個問題。
錯誤訊息
無。
解決方式
為了避免在原本匯出方案的網站上覆寫此方案,請在 Visual Studio 專案中變更方案 ID 的 GUID 及所有匯出功能的功能 ID。
錯誤會出現在偵錯開始
當您開始偵錯 Visual Studio 中的 SharePoint 方案, false 表示 Visual Studio 無法載入 Web.config 檔案,因為指定的索引鍵不在字典中。
錯誤訊息
無法載入 Web.config 組態檔。請檢查檔案中是否有任何格式不正確的 XML 元素,然後重試一遍。發生下列錯誤:給定的金鑰不在字典中。
解決方式
若要解決這個問題,請確定指派到 Web 應用程式之備用存取對應的預設本機 SharePoint 專案的網站 URL 屬性值在 Visual Studio 中與 URL 相符。使用另一個區域,例如內部網路,您無法解析錯誤, URL 的。專案的網站 URL 和 URL 在預設區域必須相符。若要存取備用存取對應,開啟 SharePoint 管理中心上安裝公用程式,選取 [應用程式管理] 連結,然後,在 [Web 應用程式] 下,選取 [配置備用存取對應] 連結。如需詳細資訊,請參閱建立 Web 應用程式的區域。