網站升級: CommunityServer 2007.1
摘要提示
- 升級動機: 原本使用 CS 2007 (3.0),跳過多個 SP 之後因 2007.1(3.1)釋出而決定升級。
- 重裝流程: 多次失敗後改採「全新安裝 + 舊資料庫升級腳本 + 掛站」的作法完成。
- 儲存目錄搬遷: 需將 ~/blogs、~/photos、~/forums 等含 storage 的目錄完整搬移。
- 佈景與相容性: 舊自訂 themes 檔案差異大,需重新調整;雖可跑但有相容性風險。
- 效能與快取: 更新快取框架、SQL 最佳化、ThreadQueryBuilder 等以改善效能與鎖定。
- 編輯與部落格: 新增前台建立/編輯/刪除貼文表單、強化 TinyMCE、Metablog/WLW/RSD 支援。
- 郵件與通知: 郵件佇列與通知機制最佳化,改背景執行並尊重使用者 Email 偏好。
- 安全與權限: 新增暫時性使用者 Token、可停用例外記錄、XSS 與權限檢查補強。
- API 與擴充: 提供排序分頁支援、TagCloud 調整、WrappedRepeater 廣告位、LINQ 名稱修正等。
- 錯誤修正: 涵蓋論壇、相簿、搜尋、RSS、驗證、UI/跨瀏覽器等大量 bug 修補。
全文重點
作者利用周末空檔,將原本執行中的 Community Server 2007(3.0)升級至 2007.1(3.1)。之前官方曾先後推出 3.0 SP1、SP2、SP3 beta,但作者皆未處理,此次因 2007.1 上線而著手升級。升級過程嘗試多次未果,最後採取重裝策略:先安裝 2007.1 官方版本,再以舊資料庫搭配官方升級腳本完成資料結構與資料轉換,掛站後確認基本功能可運作,接著將具儲存內容的目錄(~/blogs、~/photos、~/forums 等)搬移過去,最後重做自訂佈景主題。作者提到 2007.1 的 themes 檔案幾乎全數調整,舊主題雖可勉強套用,但仍需重新調整以求穩定與一致。完成後,順手將同機器上的其他兩套 CS 一併升級。
就版本變更面,作者坦言未深究細節,遂直接附上官方 2007.1 的 release notes。該版本在效能與穩定面有顯著加強:更新快取框架、加入鎖定支援、SQL 最佳化、背景作業改良(例如郵件佇列只取需寄數量,避免逾時)、例外記錄可停用並改於背景執行。內容創作與前台使用體驗方面,新增前台建立/編輯/刪除部落格貼文表單,強化 TinyMCE 包裝與樣式、實作截斷省略模板、更新 Truncation 與 Read More、支援 WLW 與 RSD/Manifest、自動探索 Metablog 路徑,並新增/更新多個主題元件與預設樣式。API 與擴充層面則增添連結類別/物件的排序分頁、TagCloud 設定、WrappedRepeater 廣告位、修正 LINQ SortOrder 名稱模糊,並新增應用程式 Token 管理與暫時性 Token(3 小時),且變更密碼流程採用暫時性 Token,提升安全與易用性。
通知與社群互動方面,強化大宗郵件與通知機制,尊重使用者「啟用 Email」與「允許站台聯絡我」設定,貼文回覆追蹤核對,並將大宗郵件移至背景執行。亦更新多項郵件與版面配置細節(如移除論壇郵件模板灰底、錯誤訊息顯示更清晰)。另一方面,Bug 修正涵蓋廣泛:檔案監看路徑、編碼、內嵌編輯器 UI、匿名瀏覽論壇根路徑不再被強制登入、麵包屑與重寫 URL、影像縮圖屬性、父貼文快取失效、Email 驗證、相簿搜尋與連結、使用者刪除/更新流程、權限與角色快取鍵、Regex 驗證、RSS 與搜尋索引、跨瀏覽器(尤其 FireFox、IE)渲染問題、XSS 風險與 HTML 清理等。也修復多個長年小痛點,例如貼文重複檢查、表單適配器與重寫相容、無限重新導向、論壇觀看次數計算、加入按鈕自動完成衝突、TinyMCE 焦點/tab 行為、分頁與 Pager 問題等。
整體來看,CS 2007.1 以「效能最佳化、前台編輯強化、郵件與通知可靠性、安全性與權限檢查、開發與整合介面」為主要軸線,並修補了大量跨模組的缺陷。對既有站台而言,升級可獲得穩定度與使用體驗的全面提升,但需留意 themes 與自訂項目的差異,建議以重裝搭配資料庫升級腳本、逐步搬遷資源與重新驗證佈景和自訂功能的方式進行,以降低風險。
段落重點
升級緣起與概況
作者在家庭日程空檔處理久拖的網站升級工作。原站版本為 CS 2007(3.0),先前的 SP1、SP2、SP3 beta 未跟進,直到 2007.1(3.1)釋出才決定升級。升級初期屢遭失敗,最終改採重裝策略,過程中強調「先讓基本功能正確啟動,再逐步搬遷資源與調整客製」的心法。完成主站升級後,順勢將同機器上的其他兩套 CS 一併升級,以求環境一致性與管理簡化。作者未逐條研究 2007.1 變更,直接引用官方 release notes,亦暗示此次版本可能已修復先前常見的棘手問題,提供升級動機。
升級步驟與注意事項
實務步驟為:1) 取得 CS 2007.1 官方套件並全新安裝;2) 將舊版資料庫配合官方 upgrade script 執行升級;3) 以升級後資料庫掛站,確認基本功能正常;4) 搬移含儲存內容的目錄(~/blogs、~/photos、~/forums 等);5) 重新調整自訂 themes。作者提醒 themes 在 2007.1 幾近「全檔異動」,舊主題直接覆蓋雖能運行,但存有相容性與風格細節的風險,實務上應全面比對與重製調整。另建議在同一主機上維持多站版本一致,便於維運、除錯與資源共享。
版本 2007.1 整體變更
2007.1 核心訴求是效能、穩定與使用者體驗:快取框架更新、SQL 最佳化、背景工作與例外處理調整,並新增 Token 與暫時性 Token 強化安全。前台內容編輯能力明顯升級:支援前台建立/編輯/刪除貼文、TinyMCE 包裝更新、截斷與 Read More、Metablog/WLW/RSD/Manifest 等生態整合。郵件與通知方面,佇列擷取與發送流程更有效率,尊重使用者偏好並移至背景執行,降低逾時風險。API 與 UI 控制項增強(排序/分頁、TagCloud、WrappedRepeater 廣告位、樣式微調),整體提升管理與擴充便利性。廣泛的 bug 修補涵蓋論壇、相簿、搜尋、RSS、UI 渲染、XSS 防護、Regex 驗證與快取鍵等層面。
功能強化(Enhancements)
效能面:快取框架與鎖定支援、SQL 與 ThreadQueryBuilder 最佳化、例外記錄改背景執行並可停用、KeepAlive 控制優化、到期日調整。內容與編輯:新增前台貼文 CRUD 表單、TinyMCE 更新與樣式調整、截斷省略模板、Read More、Metablog 預設/自動探索、支援 WLW/RSD/Manifest、關鍵字/自訂標籤、部落格與站台基本主題、側欄新聞渲染。郵件與通知:郵件佇列分批取用、背景傳送、尊重 Enable Email 與允許聯絡設定、回覆追蹤檢查、模板與錯誤訊息優化。安全與授權:暫時性使用者 Token(3 小時)、變更密碼走暫時 Token、CSContext.User 規則調整。開發與介面:LinkCategory/Link 排序分頁、TagCloud 控制、WrappedRepeater 新廣告位、LINQ SortOrder 命名修正、XML-RPC.NET 更新、Ping 列表更新等。
錯誤修正(Bug Fixes)
穩定性與相容:FileSystemWatcher、編碼、HTMLScrubber 無限迴圈、防無限重導、URL 非法字元處理、表單適配器與重寫相容。內容與論壇:父貼文快取失效修正、貼文唯一性檢查邏輯、置頂資訊保存、觀看次數計算、匿名/停用子論壇存取、分頁與 Pager、快速回覆行為、主題前後文鏈結。部落格與相簿:縮圖屬性與邊框、EXIF 標籤、相片編輯解碼、搜尋結果連結、Shutterfly 尺寸、聚合與索引、XML-RPC Ping 送達。使用者與權限:Email 驗證、匿名使用者限制、Member Admin 改密碼、角色與快取鍵、Regex 規則與全字比對、XSS 防護、外部 URL 驗證。UI 與跨瀏覽器:FireFox/IE 渲染、TinyMCE 焦點/tab、彈窗邊框、麵包屑 URL、主題錯置標籤與無效 anchor、樣式微調。郵件與通知:MailGateway 設定、佇列抓取數、Moderation 通知 SettingsID、License 顏色重置等,全面提升可靠性。
資訊整理
知識架構圖
- 前置知識:
- 了解 Community Server(CS)架構與版本差異(CS 2007→2007.1/3.0→3.1)
- ASP.NET/IIS 部署與網站備份還原流程
- SQL Server 基礎(資料庫備份、還原、執行升級腳本、效能與索引)
- 檔案系統與站點資料目錄(blogs/photos/forums 等 storage 目錄)搬移
- 主題(themes)與前端資源(TinyMCE、樣式表、Chameleon 控制項)客製化
- 用戶、權限與 Token(應用程式 Token、臨時 Token)概念
- 核心概念:
- 升級流程:備份→升級 DB(upgrade script)→部署新版本→搬移 storage→調整主題
- 效能與穩定性:快取框架更新、SQL 最佳化、背景工作(郵件/通知)優化
- 編輯與發佈:TinyMCE 更新、MetaBlog/WLW 支援、RSD/WLWManifest、自動摘要/讀更多
- 安全與合規:例外記錄控制、XSS/輸入驗證、權限/匿名存取行為修正
- 擴充與整合:Chameleon API 增強(排序/分頁)、XML-RPC.NET 更新、MailGateway 改善
- 技術依賴:
- CS Web 應用程式 依賴 SQL Server(升級腳本、Sproc/檢視更新)
- 前端編輯 依賴 TinyMCE 包裝器與樣式
- 遠端部落格發佈 依賴 MetaBlog API、RSD、WLWManifest、XML-RPC.NET
- 通知/郵件 依賴 MailGateway、背景工作佇列與 Telligent.* 函式庫
- 主題與控制項 依賴 Chameleon 控制、KeepAlive 控制、快取機制
- 應用場景:
- 將現有 CS 2007(3.0)升級至 2007.1(3.1)
- 改善大規模站台的效能(快取/SQL/背景郵件)
- 改善部落格與論壇的使用體驗(編輯器、標籤雲、麵包屑、瀏覽計數)
- 強化安全與穩定(XSS 修補、URL 重寫修正、例外記錄、輸入驗證)
- 與外部用戶端整合(Windows Live Writer、MetaBlog)
學習路徑建議
- 入門者路徑:
- 建立測試環境:IIS + SQL Server + CS 2007.1 官方套件
- 熟悉備份/還原與升級腳本的執行方式
- 演練檔案目錄搬移(~/blogs, ~/photos, ~/forums)
- 了解基本主題套用與差異比對(升級後主題變更點)
- 進階者路徑:
- 研究快取與 SQL 最佳化更新對效能的影響與調參
- 熟悉 Chameleon 控制與 API(Link/Category 的排序與分頁)
- 整合 WLW/MetaBlog、RSD/WLWManifest,自動發佈與摘要/讀更多
- 掌握 Token/TemporaryUserTokens 的啟用、到期與安全使用
- 實戰路徑:
- 擬定升級 S.O.P.:全站/DB/檔案備份→關站→執行 upgrade script→部署→驗證
- 主題相容性調整:比對新舊主題檔變更、重構自訂樣式/控制項
- 功能驗收清單:登入/權限、編輯發佈、郵件通知、搜尋索引、相簿/論壇、標籤雲
- 監控與回滾:觀察錯誤記錄、郵件佇列、快取命中;保留回滾方案
關鍵要點清單
- 升級步驟與備援:先備份 DB/檔案,執行官方 upgrade script,再搬移 storage 並驗證功能 (優先級: 高)
- 主題相容性變更:2007.1 調整了多數主題檔,需重整自訂 themes 以避免潛在問題 (優先級: 高)
- 快取框架更新:新增鎖定、多處集合的並行保護,整體效能提升 (優先級: 高)
- SQL 最佳化:多項 SQL 效能與最佳實務更新,降低查詢成本 (優先級: 高)
- 背景郵件/通知:郵件工作改為只取需發量並背景執行,減少逾時與阻塞 (優先級: 中)
- 安全性強化:XSS 修補、URL 驗證/重寫問題修正、RSS/Avatar URL 驗證為 HTTP (優先級: 高)
- 編輯器改善:TinyMCE 包裝器更新、樣式與可調整性提升,避免鍵盤 Tab 阻斷 (優先級: 中)
- MetaBlog/WLW 支援:加入 RSD/WLWManifest、自動探索、關鍵字/摘要/讀更多支援 (優先級: 中)
- 權限與匿名訪客行為修正:根論壇匿名瀏覽不再被誤導向登入等 (優先級: 中)
- Token 機制:可切換應用程式 Token、支援 3 小時到期的暫時 Token,改進變更密碼流程 (優先級: 中)
- 主題快取鍵修正:先前快取取用異常已修復,減少佈景設定失效 (優先級: 中)
- 搜尋與索引:SearchBarrel 權限檢查與部落格/檔案庫索引忽略權限選項修正 (優先級: 中)
- 使用者驗證規則:帳號/密碼預設 Regex 更新並全字串比對,強化一致性 (優先級: 中)
- 相簿/圖片與 EXIF 修正:搜尋結果連結、EXIF 標籤、Shutterfly 尺寸等問題修正 (優先級: 低)
- UI/可用性:麵包屑、分頁器、快速回覆、瀏覽計數、一致性樣式等多處微調 (優先級: 低)