首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> ASP.NET 基礎

ASP.NET Web Pages 網站部署發佈完整指南:無 WebMatrix 環境手動部署

     編輯:ASP.NET 基礎

ASP.NET Web Pages - 網站部署發佈實戰指南:從開發環境到生產伺服器


掌握不依賴 WebMatrix/Visual Studio 發佈功能的手動部署技巧,適用於僅支援 FTP 的主機、現有經典 ASP 網站遷移、自動化部署腳本、CI/CD 流程整合等實務場景。


手動部署核心挑戰與解決策略

WebMatrix 發佈功能自動處理:檔案複製、DLL 組件部署、資料庫腳本執行、Web.config 轉換。手動部署需自行確保:

  1. 正確的檔案結構:所有 .cshtml、靜態資源、配置檔
  2. 必要的執行階段組件:bin/ 目錄下的所有 DLL
  3. 正確的資料庫部署策略:避免覆蓋生產資料
  4. Web.config 環境差異處理**:連線字串、除錯模式、錯誤頁面

部署前置檢查清單

1. 確認目標主機環境

  • ASP.NET 版本:4.0 或 4.5+ (現代主機多支援 4.7.2/4.8)
  • IIS 版本:7.0+ (整合管線模式)
  • 信任層級:Full Trust 或 Medium Trust (確認組件相容性)
  • 資料庫支援:SQL Server / SQL Server Compact / LocalDB

2. 建置發佈套件 (開發機執行)

# 使用 MSBuild 建置發佈套件 (Visual Studio Developer Command Prompt)
msbuild MyWebSite.csproj /p:DeployOnBuild=true /p:PublishProfile=FolderProfile /p:Configuration=Release

# 或使用 dotnet CLI (ASP.NET Core 專案)
dotnet publish -c Release -o ./publish

檔案與資料夾複製策略

複製網站根目錄所有內容

將開發機網站資料夾 (含所有子目錄) 完整複製至遠端主機應用程式根目錄:

關鍵排除項目:

  • App_Data/*.sdf - **嚴禁直接複製生產資料庫檔案** (見下節)
  • *.pdb - 偵錯符號檔
  • *.user, *.suo - 使用者專屬設定
  • bin/*.xml - XML 文件檔 (非必要)

必要 DLL 組件部署清單

確保遠端主機 bin/ 資料夾包含以下組件 (Visual Studio 建置輸出或 NuGet 套件):

Microsoft.Web.Infrastructure.dll
NuGet.Core.dll
System.Web.Helpers.dll
System.Web.Razor.dll
System.Web.WebPages.Administration.dll
System.Web.WebPages.Deployment.dll
System.Web.WebPages.dll
System.Web.WebPages.Razor.dll
WebMatrix.Data.dll
WebMatrix.WebData.dll

# 如使用 Entity Framework
EntityFramework.dll
EntityFramework.SqlServer.dll

# 如使用 SQL Server Compact
System.Data.SqlServerCe.dll
System.Data.SqlServerCe.Entity.dll

驗證方式: 部署後瀏覽網站,若出現 Could not load file or assembly 錯誤,對照缺失組件補充。


資料庫部署黃金法則:絕不覆蓋生產資料

風險情境

開發機測試資料 (含測試帳號、臨時資料) 若直接複製 .sdf 檔案至生產環境,將:

  • 覆蓋真實用戶資料
  • 洩露測試帳號密碼
  • 導致主鍵衝突、資料不一致

正確部署流程

  1. 僅部署資料庫結構:使用 SQL 腳本 (Schema Only) 或 Code First Migrations 建立空資料表
  2. 種子資料腳本**:僅插入必要基礎資料 (角色、選單、系統設定)
  3. 生產資料備份**:部署前完整備份,驗證可還原
  4. SQL Server Compact 特殊處理**:刪除 .sdf 所有資料表資料,保留結構,複製空資料庫檔案

Web.config 環境配置轉換

<!-- Web.Release.config (XDT 轉換範例) -->
<configuration xmlns:xdt="https://schemas.microsoft.com/XML-Document-Transform">
 <connectionStrings>
 <add name="DefaultConnection" 
 connectionString="Server=prod-db;Database=MyApp;User Id=webuser;Password=StrongPwd;"
 xdt:Transform="SetAttributes" xdt:Locator="Match(name)" />
 </connectionStrings>
 <system.web>
 <compilation debug="false" xdt:Transform="SetAttributes(debug)" />
 <customErrors mode="RemoteOnly" defaultRedirect="~/Error" xdt:Transform="Replace" />
 </system.web>
</configuration>

部署後驗證清單

  • ✅ 首頁正常載入 (HTTP 200)
  • ✅ 資料庫連線正常 (查詢/新增/更新/刪除)
  • ✅ 表單提交、驗證、檔案上傳運作
  • ✅ Email 發送功能 (SMTP 設定正確)
  • ✅ 靜態資源 (CSS/JS/圖片) 正確載入 (無 404)
  • ✅ 錯誤頁面友善顯示 (無堆疊追蹤洩露)
  • ✅ HTTPS 強制導向、安全標頭 (HSTS, CSP, X-Frame-Options)

現代化部署建議:CI/CD 自動化

  • GitHub Actions / Azure DevOps / GitLab CI:程式碼推送自動建置、測試、部署
  • Web Deploy (msdeploy):增量同步、參數化、ACL 設定
  • Docker 容器化**:環境一致性、快速擴展、雲端原生
  • Azure App Service / AWS Elastic Beanstalk**:PaaS 托管、自動修補、擴展

就是這樣。祝部署順利!GOOD LUCK!


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