如何使用 Internet 信息服務 (IIS) 或內置 ASP.NET Development Server 來測試和運行網站
Posted on 2006-08-08 09:18 dotnet-dzq 閱讀(4524) 評論(0) 編輯 收藏
若要測試或運行 ASP.NET Web 應用程序,需要一台 Web 服務器。用於 Microsoft 操作系統的成品 Web 服務器是 IIS,它包括 Web 服務器、文件傳輸協議 (FTP) 服務器、簡單郵件傳輸協議 (SMTP) 虛擬電子郵件服務器以及其他設備。為了運行 IIS,您使用的 Windows 版本必須是設計用於在網絡環境中用作服務器的版本。這包括 Windows Server 2003 的 Web 版。
在 Windows 2000 Server 和 Windows 服務器操作系統的早期版本中,IIS 作為操作系統的一部分默認安裝。在 Windows XP 和 Windows Server 2003 中,不會默認安裝 IIS;可以在“控制面板”中使用“添加/刪除程序”中的“添加/刪除 Windows 組件”選項來添加 IIS。(在 Windows Server 2003 中,可以使用應用程序服務器組件安裝 IIS。)
可能會因下列原因不能使用 IIS:
-
在不支持 IIS 的 Windows XP Home Edition 中開發 ASP.NET 網頁。
-
因安全原因,您不想在計算機(例如,家庭網絡中)中承載 Web 服務器。運行 IIS 等 Web 服務器需要執行附加的步驟來幫助確保服務器的安全,還需要隨時注意安裝最新的安全更新。
-
公司策略不允許安裝某些服務器組件,如 IIS。
ASP.NET Development Server
如 果您不能或不想使用 IIS 作為 Web 服務器,仍然可以通過使用 ASP.NET Development Server 來測試 ASP.NET 網頁。ASP.NET Development Server(Visual Web Developer 中附帶的)是在 Windows 操作系統(包括 Windows XP Home Edition)中本地運行的 Web 服務器。它專門構建用於在本地主機方案中(從 Web 服務器所在的計算機中瀏覽)提供或運行 ASP.NET 網頁。換句話說,ASP.NET Development Server 會針對本地計算機上的瀏覽器請求提供網頁。它不會為其他計算機提供網頁。此外,它也不會提供應用程序范圍外的文件。ASP.NET Development Server 提供了在向運行 IIS 的成品服務器發布網頁之前在本地測試網頁的有效方式。
ASP.NET Development Server 只接受本地計算機上的經身份驗證的請求。這要求服務器可以支持 NTLM 或基本身份驗證。
![]() |
---|
一種最佳做法是不要在作為管理員登錄時運行 Visual Web Developer,而應以更受限的帳戶運行它。這有助於防止意外訪問服務器中的其他文件。 |
ASP.NET Development Server 只能處理單獨的網頁,且不包括 IIS 的附加設備。例如,ASP.NET Development Server 不支持 SMTP 郵件服務器。如果您的 Web 應用程序涉及發送電子郵件,則必須具有 IIS SMPT 虛擬服務器的訪問權以測試電子郵件,因為 ASP.NET Development Server 不能轉發電子郵件或調用可以轉發郵件的服務器。
運行 ASP.NET Development Server
默 認情況下,ASP.NET Development Server 隨 Visual Web Developer 一起安裝。如果您正在處理文件系統網站,則 Visual Web Developer 將自動使用 ASP.NET Development Server 來運行網頁。默認情況下,在為本地主機方案隨機選擇的端口上調用 Web 服務器。例如,如果要測試名為 ExamplePage.aspx 的頁,則當在 ASP.NET Development Server 中運行該頁時,該頁的 URL 可能為:
http://localhost:31544/ExamplePage.aspx |
關閉瀏覽器時,ASP.NET Development Server 再次關閉。
如果要在特定端口上運行 ASP.NET Development Server,可以為此相應地配置服務器。在下列情況中您可能要執行上述操作:
-
如果應用程序中的代碼偵聽特定端口,並且您想使用 ASP.NET Development Server 測試應用程序。
-
如果您的應用程序包括對綁定到特定端口的客戶端項目或 Web 服務的引用。
Visual Web Developer 不能保證指定的端口在運行文件系統網站時可用。有關詳細信息,請參見如何:為 ASP.NET Development Server 指定端口。
ASP.NET Development Server 的安全上下文
ASP.NET Development Server 與 IIS 之間的重要差別在於各服務器運行 ASP.NET 頁所在的安全上下文。由於頁運行方式不同,此差別可能會影響測試。
使 用 ASP.NET Development Server 運行頁時,該頁在當前用戶帳戶的上下文中運行。例如,如果您作為管理員級別用戶運行,則在 ASP.NET Development Server 中運行的頁將具有管理員級別特權。相反,在 IIS 中,ASP.NET 默認在通常具有有限特權的特殊用戶(ASPNET 或 NETWORK SERVICES)的上下文中運行。ASPNET 或 NETWORK SERVICES 帳戶是服務器計算機的本地帳戶(不是域帳戶),這限制了對其他計算機中的資源的訪問。
如果您只是讀取和運行 ASP.NET 頁中的代碼,則此差別無關緊要。但是,這兩種 Web 服務器的不同安全上下文會影響以下測試:
-
訪問頁請求的其他資源 這可能包括讀取和寫入非網頁文件,讀取和寫入 Windows 注冊表等。
-
數 據庫訪問 使用 ASP.NET Development Server 時,通常可以依靠 Windows 集成身份驗證來訪問 SQL Server。但是,當同一頁以 ASPNET 或 NETWORK SERVICES 帳戶在 IIS 中運行時,該頁將在本地用戶的上下文中運行,通常必須將該頁配置為使用包括關於用戶和密碼信息的連接字符串。有關詳細信息,請參見 Access Permissions for Web Applications (Visual Studio)。
-
代碼訪問安全 如果您的頁涉及訪問不同區域中受保護的資源,則該頁在 ASP.NET Development Server 和 IIS 中運行時可能有所不同。
即使可使用 ASP.NET Development Server 測試出頁正常運行,但在將其發布到運行 IIS 的成品 Web 服務器后,應再次進行測試。
ASP.NET Development Server 上的文件授權
在文件系統網站中,靜態文件(例如圖像和樣式表)遵守 ASP.NET 授權。例如,如果禁用了對靜態文件的匿名訪問,匿名用戶則不能使用文件系統網站中的靜態文件。但在 HTTP 位置中創建網站項目時,IIS 提供不使用授權規則的靜態文件。
具體參見vs的msdn:
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_vwdcon/html/31d4f588-df59-4b7e-b9ea-e1f2dd204328.htm
源地址:http://www.cnblogs.com/wolfdzq/articles/470647.html