--- 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
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up