當您在 Visual Studio 中開發 Web 項目時,須要 Web 服務器才能測試或運行它們。 利用 Visual Studio,您可使用不一樣的 Web 服務器進行測試,包括 IIS Express、Internet Information Services (IIS)、外部主機或自定義 Web 服務器。 您能夠將其中任何一種 Web 服務器用於基於文件的 Web 應用程序項目。 對於基於文件的網站項目,您可使用 IIS Express。 本主題介紹每種 Web 服務器以及如何選擇要用於測試的 Web 服務器。css
下表提供了用來在 Visual Web Developer 中選擇 Web 服務器的摘要指南。 html
Web 服務器 react |
什麼時候使用 ios |
---|---|
IIS Express web |
IIS Express 是 Visual Studio 2012 和 Visual Studio 2013 中 Web 應用程序項目的默認 Web 服務器,推薦用於 Web 應用程序項目和網站項目。 sql |
本地 IIS 數據庫 |
在如下狀況使用 IIS:您想要使用與運行活動站點的服務器環境最爲接近的服務器環境來測試 Web 應用程序,並且您能夠在開發計算機上安裝和使用 IIS。 有關詳細信息,請參閱 本主題後面的將 IIS 做爲開發服務器與 Visual Studio 結合使用的缺點。 express 能夠將 IIS 用於 Web 應用程序項目,但不能將其用於網站項目。 windows |
外部主機 瀏覽器 |
您能夠指定將用於測試的外部主機的 URL。 有關詳細信息,請參閱 本主題後面的將外部主機做爲開發服務器與 Visual Studio 結合使用的優勢。 |
自定義 Web 服務器 |
Visual Studio 2013 增長了對在您的項目中指定自定義 Web 服務器的支持;此功能使開發人員可以定義用於測試其 Web 應用程序的環境。 |
IIS Express 設計爲模擬 IIS,但 IIS Express 與 IIS 完整版之間的細微差別可能致使錯誤,這些錯誤只會在您已將網站部署到 IIS 生產版以後發生。 有關詳細信息,請參閱 本主題後面的使用 IIS Express 的缺點。 若是使用 IIS Express,則建議先在使用目標 IIS 版本的臨時服務器上測試應用程序,而後再將它部署到活動站點。
默認狀況下,Visual Studio 2012 和 Visual Studio 2013 使用 IIS Express。 有關如下內容的詳細信息如何指定一種替代 Web 服務器,請參見How to: Specify the Web Server for Web Projects in Visual Studio。
IIS Express 包含 IIS 7 和 IIS 8 Web 服務器的許多功能,但不要求在您的計算機上安裝和管理 IIS。 因爲 IIS Express 與 IIS 7 和 IIS 8 類似,所以,與使用其餘 Web 服務器相比,利用它能夠將網站更平穩地切換到 IIS。
IIS Express 具備如下特色:
它支持並啓用與 IIS 7 和 IIS 8 相同的擴展模型和 Web.config 文件設置。
它不要求更改您的 Web 應用程序代碼。
它能夠與完整版 IIS 以及其餘 Web 服務器並行安裝。 您能夠爲每一個項目選擇一個不一樣的 Web 服務器。
在企業環境中,IIS Express 具備如下特色:
它不要求使用管理員賬戶來運行或調試應用程序。
它不在另外一臺計算機上處理針對瀏覽器的請求,從而使得在企業環境中批准請求變得更加容易。
它可安裝在不支持 IIS 7 或 IIS 8 的 Windows 版本上。
提示 |
---|
雖然 IIS Express 派生自 IIS 且支持 IIS 的核心功能,但這些服務器之間仍是存在一些差別。 有關詳細信息,請參閱 IIS Express 概述,以及本主題後面的使用 IIS Express 的缺點。 |
安裝 Visual Studio 2012 和 Visual Studio 2013 時自動安裝 IIS Express。 若是要在 Visual Studio 2010(要求 SP1)中安裝 IIS Express,可以使用 Microsoft Web 平臺安裝程序。
在瀏覽器中,轉到 Microsoft.com/web 站點的安裝頁。
下載安裝程序,而後按照步驟完成安裝。
在 Visual Studio 中運行項目時,IIS Express 將自動啓動,而在 Visual Studio 中關閉網站項目或 Web 應用程序項目時,它會隨即中止。 IIS Express 正在運行時,它在系統任務欄中顯示一個圖標,以下圖所示。
下表列出了針對 IIS Express 的一些典型任務以及執行這些任務的方法。
任務 |
步驟 |
||
---|---|---|---|
顯示在 IIS Express 上運行的全部站點的列表 |
右擊系統任務欄中的 IIS Express 圖標,而後單擊「顯示全部應用程序」。 |
||
查看網站目錄位置、配置路徑以及 .NET Framework 版本 |
在 IIS Express 窗口中選擇網站。 信息將顯示在網站列表的下方。 |
||
中止 IIS Express |
右擊任務欄圖標,而後選擇「退出」。
|
在新建基於文件的網站項目或 Web 應用程序項目時,將會爲該項目隨機選擇一個端口。 例如,若是要測試名爲 ExamplePage.aspx 的頁面,則當在 IIS Express 上運行該頁面時,頁面的 URL 可能爲:
http://localhost:31544/ExamplePage.aspx
若是要在特定端口上運行 IIS Express,能夠對服務器進行相應配置。 在下列狀況中您可能要執行上述操做:
您已複製一個 Web 應用程序項目或網站項目,而且您須要對這兩個項目同時進行調試和處理。 在這種狀況下,將會出現端口衝突,必須更改其中一個項目的端口名稱。
您的項目包括對綁定到特定端口的客戶端項目或 Web 服務的引用。
項目中的代碼將偵聽某個特定端口,而且您但願可以使用 IIS Express 測試應用程序。
若是您的代碼引用根級資源(如 CSS 和 JavaScript 文件)而沒有指定它們在項目根級別,當您在 Visual Studio 中測試時,應用程序可能正常工做可是將其部署到 IIS 生產環境時會失敗。 根據配置 IIS 的方式,在生產環境中可能失敗,由於 IIS 可能在 IIS 網站的根中查找根級資源。 例如,若是您在 Visual Studio 中建立新的 MVC 項目,將在 Views\Shared\_Layout.cshtml 文件中找到此行代碼:
波形符 (~) 指定此資源位於應用程序的根級別。 若是刪除波形符並在帶 IIS Express 的 Visual Studio 中運行應用程序,在應用程序外觀上不會有變化。
可是,當您部署到 IIS(或選擇 IIS 做爲 Visual Studio 中的開發 Web 服務器)時,您能夠看到 CSS 樣式丟失,由於 IIS 沒法找到該資源:
Visual Studio 中的開發服務器與 IIS 之間的重要差異在於各服務器運行 ASP.NET 頁的安全上下文。 當您部署網站或 Web 應用程序在 IIS 上運行時,這一差異可能會成爲問題之源。
使用 IIS Express 運行頁面時,頁面將在當前用戶賬戶的上下文中運行。 例如,若是做爲管理員級別的用戶運行,則在 IIS Express 中運行的頁面將具備管理員級別特權。 相反,在 IIS 7 和 IIS 8 中,默認狀況下 ASP.NET 以具備有限特權的賬戶運行。 有關詳細信息,請參閱 IIS 上的應用程序池標識。 net 網站。
若是您只是讀取和運行 ASP.NET 頁中的代碼,則此差異可有可無。 可是,這兩種 Web 服務器的不一樣安全上下文會以幾種方式影響測試:
數據庫訪問:使用 IIS Express 時,一般可使用 Windows 集成身份驗證來訪問 SQL Server。 可是,在 IIS 中運行同一頁時,將在應用程序池標識的上下文中運行該頁。 您能夠改用 SQL Server 身份驗證或添加頁以 SQL Server 登陸名在其下運行的應用程序池標識。 有關詳細信息,請參閱 Accessing SQL Server from a Web Application、ASP.NET Security Architecture 和 應用程序池標識。
代碼訪問安全性 若是網頁以中等信任模式運行(大多數 Web 承載提供程序要求如此),則該網頁在 Visual Studio 中的服務器上運行的方式與在 IIS 上運行的方式可能會不一樣。
訪問頁請求的其餘資源:這可能包括讀取和寫入非網頁文件,讀取和寫入 Windows 註冊表等。
Visual Studio 2013 使您可以配置外部 Web 服務器來進行測試,此功能在 Visual Studio 2012 和較早的 Visual Studio 版本中稱爲「自定義 Web 服務器」。 當開發人員將其 Web 應用程序配置爲使用外部主機進行測試時,開發人員會享有若干優點,下面的各部分將討論這些內容。
例如,若是您 Web 應用程序的文件存儲在網絡共享上,而網絡共享也是 IIS 在開發或臨時 Web 服務器上承載的網站的內容文件夾,則您能夠輸入該網站的 URL 做爲外部主機。 此方案使其餘客戶端可以測試應用程序,這在使用 IIS Express 時是不可能的,由於它設計爲在本地計算機上進行測試。
由於外部主機服務器一般位於遠程服務器上,因此每次您按 F5 開始調試時,不會從新構建您的應用程序。 這使您可以忽略仍處於開發階段的源代碼文件中的生成錯誤,但仍可以測試應用程序中已完成的部分。
此外,由於您的遠程 Web 服務器可能做爲服務運行,因此,應用程序測試彷佛可能響應時間更快,由於網站已在運行。 相比之下,當每次按 F5 調試應用程序時,均可能須要從新啓動 IIS Express。
Visual Studio 2013 使開發人員可以向其項目中添加自定義 Web 服務器,Visual Studio 將在下拉菜單中顯示這些自定義 Web 服務器以及內置的 Web 服務器類型。 有關如下內容的詳細信息配置自定義 Web 服務器,請參見 http://go.microsoft.com/fwlink/?LinkID=324006。
用於 Microsoft 操做系統的生產 Web 服務器是 IIS,它能夠包括 Web 服務器、文件傳輸協議 (FTP) 服務器、簡單郵件傳輸協議 (SMTP) 虛擬電子郵件服務器以及其餘設備。 爲了運行 IIS,您必須使用在下表中列出的 Windows 版本之一。
Windows 版本 |
IIS 版本 |
||
---|---|---|---|
Windows Server 2012 R2 Windows 8.1 |
IIS 8.5 |
||
Windows Server 2012 Windows 8 |
IIS 8.0 |
||
Windows Server 2008 R2 Windows 7(家庭高級版、專業版、企業版和旗艦版) |
IIS 7.5 |
||
Windows Server 2008 Windows Vista(Home Premium、Business、Enterprise 和 Ultimate 版本) |
IIS 7.0 |
||
Windows Server 2003 Windows XP Professional x64 |
IIS 6.0 |
||
Windows XP Professional x32 |
IIS 5.1
|
與使用 IIS Express 相比,將 IIS 用做開發服務器可能須要執行更多的設置和配置任務才能與 Visual Studio 結合使用,其中包括:
IIS 和 ASP.NET 都必須在 Windows 中啓用,並且 ASP.NET 必須在 Windows 中註冊。 (若是您先安裝 .NET Framework,再啓用 IIS,則註冊是一個單獨的步驟。 有關詳細信息,請參閱 ASP.NET IIS Registration Tool (Aspnet_regiis.exe).)
您必須以管理員身份運行 Visual Studio 才能使用 IIS。
此外,若是存在如下任何狀況,則您可能沒法使用 IIS:
您的企業工做場所策略不容許在開發人員計算機上啓用 IIS 這樣的服務器角色。
您的企業工做場所策略不容許開發人員在 IIS 上具備管理員賬戶。
在不支持 IIS 的 Windows Home Edition 中開發 ASP.NET 網頁。
因安全緣由,您不想在計算機(例如,家庭網絡中)中承載 Web 服務器。
您的 Web 項目使用 SQL Server Express LocalDB 數據庫。 有關詳細信息,請參閱 SQL Server Express 博客上的將 LocalDB 與完整 IIS 結合使用。
在這種狀況下,您可使用 IIS Express。
在 Windows XP、Windows Server 2003 以及 Windows 的更高版本中,默認狀況下不會安裝 IIS。
若是你有 Windows Server 2012 或 Windows 8而且但願安裝 IIS 8,請參閱 IIS 上的在 Windows Server 2012 上安裝 IIS 8。 net 站點或 TechNet 站點上的安裝 IIS 8 和 ASP.NET 模塊。
若是你有 Windows Server 2008 或 Windows 7 而且想要安裝 IIS 7,則能夠下載 Web 平臺安裝程序,使用它安裝 IIS 7 建議的配置。 這樣作會在您的計算機上啓用 IIS 和 ASP.NET。 有關如下內容的詳細信息如何將 IIS 7 用於 Visual Studio,請參見Running Web Applications on Windows Vista with IIS 7.0 and Visual Studio或Running Web Applications on Windows Server 2008 with IIS 7.0 and Visual Studio。
若是你正在使用 Windows Server 2003 而且想要安裝 IIS 6,請參閱 Microsoft Technet 站點上的安裝 IIS (IIS 6.0)。 另請參見如何在 IIS 6.0 中啓用 Visual Studio .NET 使用的擴展 和 How to: Create and Configure Local ASP.NET Web Sites in IIS 6.0。