首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 數據庫部署到遠程主機實戰:Database Publishing Wizard 全流程指南

     編輯:關於SqlServer

本地開發完成的 ASP.NET 應用 (含 Membership/Role/Profile 數據) 需部署至共享主機環境,傳統方式面臨:無遠程 SSMS 權限、SQL 腳本兼容性、ASP.NET 服務數據庫安裝需 dbo 權限等難題。SQL Server Hosting Toolkit 隨附的 Database Publishing Wizard (DPW) 完美解決:生成單一 .sql 腳本或調用遠程 Web Service,一鍵重建架構與數據,無需主機商配合安裝組件。

工具獲取與安裝

  • 下載:SQL Server Hosting Toolkit (含 DPW),免費。
  • 安裝後集成至 Visual Studio 2005 / VWD Express 方案管理器右鍵菜單,也提供獨立 GUI 與命令行 SqlPubWiz.exe。

兩大部署模式

實戰演練:Personal Starter Kit 部署 (模式一)

步驟 1:準備本地數據庫

  • VS/VWD 新建網站 → 選擇 Personal Starter Kit 模板 (默認 SQL Express App_Data\personal.mdf + aspnetdb.mdf)。
  • 運行網站 → ASP.NET 配置 → 創建管理員用戶 → 登錄上傳相片/創建相冊 (驗證數據寫入)。

步驟 2:生成部署腳本

  1. 方案管理器 → 右鍵 App_Data → 發布到 SQL Server (或右鍵 .mdf 文件)。
  2. 嚮導配置:
    • 目標:生成 SQL 腳本文件。
    • 腳本選項:✅ 架構 ✅ 數據 ✅ 索引 ✅ 觸發器 ✅ 全文索引 ✅ 權限/角色 ✅ ASP.NET 服務數據庫 (關鍵:無需 dbo 權限 安裝 Membership/Role/Profile 表與存儲過程)。
    • 輸出路徑:PublishScripts\Personal.sql、PublishScripts\AspNetDB.sql。
  3. 完成 → 獲得兩個單文件完整部署腳本。
  4. 步驟 3:遠程部署

    1. FTP 上傳 .sql 至主機提供的腳本執行目錄 (或通過控制面板上傳)。
    2. 主機控制面板 (Plesk/cPanel/自定義) → 數據庫工具 → 運行 SQL 腳本 → 選擇上傳文件 → 執行。
    3. 驗證:遠程連接字串指向新建數據庫,網站訪問正常。

    核心優勢深度解析

    1. 版本無關:本地 SQL Express 2005 → 遠程 SQL Server 2000/2005/2008,自動處理語法差異。
    2. ASP.NET 服務數據庫零障礙:內建 aspnet_regsql.sql 需 dbo 權限創建表/存儲過程/作業,共享主機通常拒絕。DPW 將其轉化為普通用戶可執行的腳本 (無 CREATE DATABASE、sp_add_job 等特權操作)。
    3. 二進制數據完美支持:相片、文件等 varbinary(max) / image 數據自動轉為十六進制字面量 0x...,腳本可直接執行。
    4. 可審計/可版控:.sql 文件納入 Git,部署歷史可追溯、可回滾、可代碼審查。

    命令行自動化 (CI/CD 集成)

    SqlPubWiz.exe script -d "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\personal.mdf;Integrated Security=True;User Instance=True" 
      -f "C:\Deploy\Personal.sql" -schema -data -targetversion 2005
    

    參數:-schema -data -targetversion (2000/2005/2008) -nodrop -noschema 等。

    常見問題與解決

模式流程主機商要求優勢
生成 .sql 腳本本地 DPW 指向數據庫 → 生成完整架構+數據 .sql → FTP 上傳 → 主機控制面板運行腳本支持 .sql 上傳執行 (絕多數共享主機)零依賴、通用、可版本控制、可審計
Web Service 遠程發布本地 DPW 調用遠程 SqlPublish.asmx → 直接重建遠程數據庫需主機商部署發布 Web Service (Toolkit 含免費實現)無中間文件、適合自動化 CI/CD
問題原因解決
腳本過大 (>50MB) 執行超時單次批次過大分表導出、或使用 bcp/BULK INSERT 導入數據,腳本僅含架構
遠程執行報錯 "CREATE DATABASE 權限不足"腳本含 CREATE DATABASEDPW 選項取消 "Script Database Create",遠程預建空庫
編碼亂碼腳本編碼與遠程連接編碼不一致確保腳本 UTF-8 BOM,連接字串無編碼干擾
主機不支持 .sql 上傳執行安全策略限制改用 Web Service 發布模式,或要求主機商臨時開放

Database Publishing Wizard 以「單文件、無特權、跨版本、自動化」四大特性,成為共享主機部署 SQL Server 數據庫的黃金標準。配合現代 CI/CD 流水線,可實現從開發提交到生產上線的全自動化數據庫交付。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved