SharePoint 2013 已經迫近眼前,提新的基於 SharePoint 的方案時,已經不能不考慮和解釋與 2013 有關的內容了。
在這些需要考慮和解釋的部分里面,沙盒解決方案的去留是我最關心的。因為新的 App 開發模型的出現,沙盒解決方案將不再被推薦使用,這種說法應該是來自 Apps for SharePoint compared with SharePoint solutions,引起部分人(包括我)的一點點小擔心。
翻看了大量的資料以后,我感覺目前已經有和在開發的使用沙盒方案的 SharePoint 2010 網站應該能夠在 2013 中順利運行。為了檢驗這個判斷,Jony 按照官方的文檔和網上其他人的文章,做了這個簡單的升級實驗。
環境
SharePoint 2010 是 3 台虛擬機:域控、數據庫、SharePoint;SharePoint 2013 是 2 台虛擬機:域控+數據庫(不推薦這么部署,我是沒辦法)、SharePoint。
計划
參考 Manage site collection upgrades to SharePoint 2013 和 Upgrading from SharePoint 2010 to SharePoint 2013 Step by Step 這兩篇文章。
SharePoint 2010
- 備份網站集數據庫
- 備份沙盒方案 wsp 文件
SharePoint 2013
- 還原網站集數據庫備份
- 新建網站應用程序
- 測試網站集數據庫備份
- 掛載網站集數據庫備份
- 部署沙盒方案 wsp 文件
- 將網站集升級到 2013
就像把大象塞進冰箱一樣,哈。
執行
SharePoint 2010
備份數據庫,簡單的操作“任務—>備份”:
備份沙盒方案,更簡單,拷貝文件 wsp 即可。
(如果有服務器場解決方案,也需要備份,並在 SharePoint 2013 中還原。)
SharePoint 2013
還原數據庫備份,這里遇到點兒小麻煩。
數據庫引擎用的 SQL Server 2012,按照習慣,直接先在圖形界面 restore,結果
好吧,我對 SQL Server 2012 不熟悉,應該也不會是我使用試用版的原因, 不想在這個上面折騰時間,就直接用 sql 還原了:
接下來,在 SharePoint 2013 里面新建一個網站應用程序,默認設置即可(端口與原來網站一樣)。這里,不知道你會不會個疑問:新建網站應用程序的時候,會建立一個默認的內容數據庫,升級 SharePoint 2010 內容數據庫進去以后,這 2 個內容數據庫會是什么關系呢?答案后面揭曉。
網站應用程序建好以后,先不要建網站集。打開 SharePoint Powershell,打幾個命令進去測試掛載 SharePoint 2010 的內容數據庫。
測試:Test-SPContentDatabase
雖然有很多“Error”,但是,所有的“UpgradeBlocking”都是“False”,好了,我心里有數了 :)
掛載:Mount-SPContentDatabase
100% 完成但是有錯誤。打開 log 看看:
看似是因為部分 Feature missing,原來的 SharePoint 2010 的網站集就是從空白開始的,而且里面全部是沙盒方案和 jQuery 之類的庫,所以,我估計這些 Feature 是不同 SharePoint 版本之間的誤解造成的,升級后應該就可以轉換到新版本了。
下面,進去網站應用程序地址看看導入的效果:
看上去不錯,報 Web Part Error 的原因是:沙盒服務沒有開啟。好吧,去 CA:
回來,再試試:
好了,圖表出來了 :)
再看看 Solution Gallery,試試更新沙盒方案:
OK,完全沒問題。
最后,點擊頂部的提示,試試升級到 2013(升級前,我們仍然運行在 SharePoint 2010 的模式下,SharePoint 2013 提供這種兼容性)。
升級成功,也完全沒有問題。呵呵,終於放心了。
下面回頭回答問題:新建網站應用程序時,那個默認的內容數據庫會怎么樣呢?
下面以 “_15”后綴的,就是默認的內容數據庫,里面沒有網站集,也就是說,掛載數據庫后,用的是我們掛載的那個。默認那個,現在就可以直接刪掉了。
結論
如果是帶沙盒方案(含 jQuery 等客戶端庫文件)的升級,從 SharePoint 2010 到 SharePoint 2013 應該是沒有問題的,完全兼容。可以放心了。













