剛學WSS不久,之前在測試服務器上面做了個自定義頁面的WSS網頁,需要把它發佈到生產服務器上面。這篇文章只是記錄了發佈的一些需要注意的步驟,僅作爲今後可以回頭參考的資料,可能不是很正規的做法。備忘而已。
1、把編譯好的源碼從測試環境拷貝到生產服務器上面
2、由於在生產環境服務器上面沒有安裝VS2008,需要先把GAC註冊工具也拷貝到生產服務器上面
3、修改部署文件的批處理文件,把Gacutil的路徑修改成步驟2實際保存的路徑
4、運行Intall.bat文件,進行工程各種文件的拷貝和註冊DLL,安裝Feature
5、嘗試訪問自定義的頁面,此時系統報錯,原因是還缺少一些文件。因爲這些文件分散在測試環境裏,在第一次部署的時候,不知道這些文件應該放在哪個地方。通過這個模擬的部署過程,就可以瞭解這些文件哪些是必須的,哪些是可以省略的。今後就可以花時間做一個安裝包,直接運行安裝包即可。
6、由於之前修改過子網站的幾個MasterPage,需要把這幾個MasterPage也拷貝到生產服務器上面
7、然後在生產服務器上面的SiteCollection上面創建那些業務上需要的列表
8、創建文檔庫
9、創建圖片庫
10、打開生產服務器上面的WSS站點的web.config文件,配置Sefecontrol節點,把工程生成的DLL配置成SafeControl
11、修改web.config文件,使WSS站點增加Ajax的支持
12、配置完Ajax後,之前創建的Admin頁面已經可以運行了
13、其他頁面還是出錯
14、由於工程中使用到Enterprise Library,需要把用到的DLL在生產環境的GAC中進行註冊,先把相關的DLL拷貝過來
15、用Gacutil這個工具將以下幾個DLL註冊到GAC
16、Admin頁面裏面的按鈕也可以運行了,Sales和Brand的數據已經被成功初始化
17、修改web.config文件,使WSS站點能夠使用Session
18、把工程用到的兩個sitemap文件也拷貝到生產服務器上面
19、配置Sitemap Provider
20、Search頁面也可以運行了,但是由於一些圖片的路徑不對,沒有正確顯示。這是由於代碼裏面直接指定了服務器的名字造成的,今後要花時間把它們寫到CSS裏面,不能偷懶;
21、把缺少的圖片也拷貝過來
22、用Gacutil註冊工程用到的第三方工具,這些DLL可以幫助我們用select * from xxx之類的語法查詢WSS的自定義列表裏面的數據,非常方便。
23、但是按Search頁面裏面的按鈕,仍然出現錯誤。Ajax把相應的錯誤信息給屏蔽掉了,光看以下提示,不知是什麼地方出錯。
24、經查,上面步驟出錯,是因爲我們使用到了Session來存放一些業務上的數據;
25、把Ajax屏蔽掉後,真正的錯誤原因顯示出來了,原來是我們定義的TrimsPhoto類沒有定義成可序列化的類。但是之前在測試服務器上面,同樣沒有定義成可序列化的類,爲何能正常運行呢?這肯定是生產服務器上面web.config裏面的配置和測試服務器上面的配置不一樣。區別點在哪裏呢?
26、通過一番查找和比較,終於發現在生產服務器上面有一行sessionState的配置,這個配置把Session的模式設置成了SQL Server。這就要求所有放在Session裏面的對象必須能夠被序列化。原因在此,於是乾脆把這行代碼給註釋掉。
27、之前用Sharepoint Designer 2007修改過測試服務器上面的幾個MasterPage,把一些不需要顯示的內容隱藏起來了。也需要把這兩個文件拷貝到生產服務器上面。先把這兩個MasterPage從測試服務器上面下載下來。
28、然後上傳到生產服務器上面
29、更換各個頁面的MasterPage的路徑
30、至此,自定義的頁面已經可以運行了。