共用方式為


在沒有系統管理許可權的情況下執行IIS Express

作者:Vaidy Gopalakrishnan

IIS Express的設計目的是允許執行最常見的 Web 開發和測試工作,而不需要系統管理許可權。 在開發人員未在其電腦上執行系統管理許可權的情況下,這非常有用。 即使是系統管理使用者,這項功能也不會中斷工作流程中的使用者帳戶控制 (UAC) 快顯視窗。

本文說明標準使用者可以對IIS Express執行的動作,並說明僅限於系統管理員的工作。

在本機執行網站

使用IIS Express,標準使用者可以使用非保留埠在本機執行網站, (大於 1024) 的埠。 IIS Express的預設網站系結為 http://localhost:8080 。 根據預設,WebMatrix 和 Visual Studio 2010 SP1 Beta 也會設定網站使用 localhost 和非保留的埠。

相反地,需要系統管理許可權才能提供外部要求的內容,或使用 80 或 443 等保留埠。

設定網站和應用程式

IIS 和 IIS Express都會使用包含全伺服器組態資訊的applicationhost.config檔案。 透過IIS Express,每個使用者都有自己的applicationhost.config複本,這表示使用者可以新增網站、移除網站、設定虛擬目錄等等,而不需要特殊許可權。 IIS Express在 Windows 7) 上尋找使用者Documents (資料夾中的applicationhost.config檔案,例如%userprofile%\Documents\IISExpress\config。 IIS Express也可以使用 /config 命令列參數指向自訂applicationhost.config檔案。 結果是不需要是系統管理員,就能搭配 Visual Studio 使用IIS Express。

因為 IIS 使用標準使用者無法寫入的電腦 applicationhost.config 檔案,所以 IIS 下的相同工作只能由系統管理員執行。 (因為 IIS 通常用於伺服器電腦上,所以從個別開發人員的觀點來看,這通常不是限制。)

啟動和停止網站

透過IIS Express,標準使用者可以啟動和停止其網頁伺服器。 這可以使用 WebMatrix 和 Visual Studio 2010 SP1 Beta,或使用 iisexpress.exe 命令可執行檔來完成。 Windows 系統匣應用程式也可讓使用者流覽和關閉IIS Express實例。

使用 IIS 時,使用者無法直接啟動其網站。 相反地,背景工作進程啟用服務 (WAS) 負責啟用網站。 因為 WAS 是系統服務,所以只有系統管理員可以啟動或停止它。

使用 SSL

透過安全通訊端層設定存取 (SSL) 需要IIS Express的系統管理許可權,就像在 IIS 上一樣。 不過,IIS Express安裝程式會執行下列工作,讓標準使用者使用 SSL 搭配IIS Express:

  • 它會自動在本機電腦存放區中建立並安裝自我簽署 SSL 伺服器憑證。
  • 它會設定HTTP.SYS保留埠 44300 到 44399 以進行 SSL。 使用 localhost 和指定範圍內其中一個埠的傳入 SSL 要求會自動與自我簽署憑證相關聯。

(HTTP.SYS 是處理 IIS 和 IIS Express SSL 的作業系統元件。安裝程式能夠設定HTTP.SYS,因為安裝程式是以提高的許可權執行。)

因此,使用 SSL 來測試具有IIS Express的網站,就像將類似下列的系結新增至applicationhost.config中的網站元素一樣簡單:

<binding protocol="https" bindingInformation="*:44300:localhost" />

這僅適用于本機流量 (localhost 要求) ,以及指定埠範圍。 需要系統管理員許可權,才能設定自訂 SSL 憑證,或使用指定範圍以外的埠執行 SSL。

總結

IIS Express可讓非系統管理使用者執行下列工作:

  • 在本機執行網站,並使用大於 1024 的埠號碼。
  • 新增、移除和修改網站、應用程式和虛擬目錄。
  • 啟動和停止網頁伺服器。
  • 新增 SSL 支援,以使用預先安裝的自我簽署 SSL 憑證和 44300 到 44399 之間的埠來測試網站。

需要系統管理許可權才能執行下列工作:

  • 使用保留的埠,例如 80 或 443。
  • 提供外部流量的要求。
  • 設定自訂 SSL 憑證。
  • 使用超出 44300 到 44399 範圍的埠執行 SSL。