--- tags: ASP.NET,IIS,部署,C# --- # 部署 ASP.NET 應用程式到 IIS ## 簡易 IIS 網站部署說明文件 本文件旨在提供一個簡潔的指南,協助您將 ASP.NET 應用程式部署到 IIS (Internet Information Services) 伺服器上。 ### 前置準備 (部署前務必確認) 1. **安裝 IIS 角色及功能:** 確保您的伺服器已經安裝了 IIS 相關的服務與必要的元件 (例如:ASP.NET Core Hosting Bundle 或 .NET Framework 功能)。 2. **建立 IIS 網站:** * 在 IIS 管理員中,右鍵點擊「網站 (Sites)」,選擇「新增網站 (Add Website...)」。 * 設定網站名稱 (例如:`MyWebApp`)、應用程式集區 (Application Pool)、實體路徑 (Physical Path) 和繫結 (Binding)。 * **重要:** 記錄下您設定的網站名稱,之後發佈時會用到。 3. **資料庫準備 (非常重要!)** > **LocalDB 不適用於 IIS 生產環境!** 請勿嘗試在 IIS 上直接使用 LocalDB。 * **解決方案:** 1. 在您的伺服器上安裝一個 **完整的 SQL Server 實例** (例如 SQL Server Express)。 2. 將您 LocalDB 中的資料庫 **備份並還原** 到這個 SQL Server 實例上。 3. **修改專案中的資料庫連接字串:** 打開您的專案,找到 `Web.config` (或 `appsettings.json`) 檔案,將連接字串更改為指向新的 SQL Server 實例。 * 範例 (SQL Server Express): `Data Source=.\SQLEXPRESS;Initial Catalog=YourDBName;Integrated Security=True` * 範例 (含使用者帳密): `Data Source=YourServerName;Initial Catalog=YourDBName;User ID=YourUser;Password=YourPassword` ### 部署步驟 請依照以下步驟使用 Visual Studio 發佈您的專案: #### 步驟一:開啟發佈精靈 1. 在 Visual Studio 中,右鍵點擊您的專案 (Project)。 2. 選擇「**發佈 (Publish)**」。 #### 步驟二:選擇 IIS 發佈目標 1. 在發佈精靈中,選擇「**IIS、FTP、Web Deploy**」。 2. 選擇「**Web Deploy**」作為發佈方法。 #### 步驟三:設定 IIS 連線資訊 這個步驟對應您提供的圖片。請依序填寫以下欄位: 1. **伺服器 (Server):** * 填寫目標 IIS 伺服器的位址。 * **本機部署:** `localhost` 或 `127.0.0.1` * **遠端伺服器:** 伺服器的 **IP 位址** (例如 `192.168.1.100`) 或 **主機名稱** (例如 `YourServerName`)。 * **Web Deploy Agent 服務:** `https://YourServerName:8172/MsDeploy.axd` (如果已啟用) 2. **網站名稱 (Site name):** * 填寫您在 IIS 管理員中為此應用程式建立的 **網站名稱**。 * **重要:** 此名稱必須與 IIS 中現有的網站名稱完全一致。 * 範例:`MyWebApp` 3. **目標 URL (Destination URL):** * 發佈成功後,您預期透過哪個 URL 存取您的網站。 * 範例:`http://localhost/MyWebApp` 或 `http://www.yourdomain.com/` 4. **使用者名稱 (User name):** * 具有足夠權限在目標 IIS 伺服器上執行發佈操作的帳戶。 * 建議使用具有 IIS 站台實體路徑寫入權限的帳戶。 * 範例:`DOMAIN\Username` 或 `COMPUTERNAME\Username` 5. **密碼 (Password):** * 填寫上述使用者名稱對應的密碼。 * (可勾選「儲存密碼」以供下次使用,但請注意安全性考量) 6. **驗證連線 (Validate Connection):** * **務必點擊此按鈕**,以確認 Visual Studio 可以成功連接到目標 IIS 伺服器並驗證憑證。如果驗證失敗,請根據錯誤訊息進行排除。 #### 步驟四:發佈與確認 1. **點擊「下一步 (Next)」或「完成 (Finish)」** 以繼續發佈流程。 2. 在發佈選項中,確認您沒有選擇發佈 LocalDB 相關的資料庫檔案。 3. **點擊「發佈 (Publish)」** 按鈕。 4. **確認發佈成功:** 檢查 Visual Studio 的「輸出 (Output)」視窗,確認發佈過程沒有錯誤。 5. **測試網站:** 打開瀏覽器,輸入您在「目標 URL」中設定的網址,確認網站可以正常運作。 ### 疑難排解 (常見問題) * **連線失敗:** * 檢查 IIS 伺服器的 IP 位址或主機名稱是否正確。 * 確認目標伺服器上的 Web Deploy 服務是否正在運行。 * 檢查防火牆設定,確保 Web Deploy 埠 (預設 8172) 未被阻擋。 * 確認使用者名稱和密碼是否正確,並且該帳戶有足夠的權限。 * **網站運行錯誤 (例如 500 錯誤):** * **檢查資料庫連接字串:** 這是最常見的問題。確認您的應用程式正在嘗試連接正確的 SQL Server 實例。 * **IIS 應用程式集區權限:** * 在 IIS 管理員中,進入您的網站所使用的「應用程式集區 (Application Pool)」的「進階設定 (Advanced Settings)」。 * 確認「**身分識別 (Identity)**」設定是否正確,它可能需要設定為具有足夠權限的帳戶。 * 將「**載入使用者設定檔 (Load User Profile)**」設定為 `True` (對於某些應用程式或組件是必要的)。 * **檔案/資料夾權限:** 確保 IIS 應用程式集區的身份對於您的網站實體路徑 (Physical Path) 具有讀取和執行權限,以及如果應用程式需要寫入檔案 (例如日誌、上傳檔案) 則要有寫入權限。 * **查看事件檢視器:** 在伺服器上打開「事件檢視器 (Event Viewer)」,檢查「Windows 日誌」->「應用程式」和「系統」日誌,通常會有詳細的錯誤訊息。 * **查看 IIS 日誌:** 檢查 IIS 網站的日誌檔案 (通常位於 `C:\inetpub\logs\LogFiles`)。
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.