---
# System prepended metadata

title: 部署 ASP.NET 應用程式到 IIS
tags: [部署, ASP.NET, IIS, C#]

---

---
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`)。