Visual Studio中用于ASP.NET Web项目的Web服务器

当您在 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 平台安装程序。

安装 IIS Express

  1. 在浏览器中,转到 Microsoft.com/web 站点的安装页

  2. 下载安装程序,而后按照步骤完成安装。

在 Visual Studio 中运行项目时,IIS Express 将自动启动,而在 Visual Studio 中关闭网站项目或 Web 应用程序项目时,它会随即中止。 IIS Express 正在运行时,它在系统任务栏中显示一个图标,以下图所示。

IIS Express System Tray icon

下表列出了针对 IIS Express 的一些典型任务以及执行这些任务的方法。

 

任务

步骤

显示在 IIS Express 上运行的全部站点的列表

右击系统任务栏中的 IIS Express 图标,而后单击“显示全部应用程序”。

查看网站目录位置、配置路径以及 .NET Framework 版本

在 IIS Express 窗口中选择网站。 信息将显示在网站列表的下方。

中止 IIS Express

右击任务栏图标,而后选择“退出”。

说明 说明

在大多数状况下,您都不须要手动关闭 IIS Express。 可是,若是您在使用 SQL Server Express,在可能必须手动中止 IIS Express,而后才能访问 SQL Server Express .mdf 文件(例如,从 SQL Server Management Studio 访问)。

在新建基于文件的网站项目或 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 文件中找到此行代码:

 
复制
@Styles.Render("~/Content/css")

波形符 (~) 指定此资源位于应用程序的根级别。 若是删除波形符并在带 IIS Express 的 Visual Studio 中运行应用程序,在应用程序外观上不会有变化。

Normal MVC project template home page

可是,当您部署到 IIS(或选择 IIS 做为 Visual Studio 中的开发 Web 服务器)时,您能够看到 CSS 样式丢失,由于 IIS 没法找到该资源:

MVC project template home page with CSS missing

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 ApplicationASP.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。

由于 Web 服务器是远程的,因此,您可能很难按照模拟本地 Web 服务器的方式配置您的调试体验。 例如,远程 Web 服务器具备的身份验证设置可能会阻止 Visual Studio 做为调试器链接到 Web 应用程序,所以,若是您要向代码中添加 Debugger.Break() 语句,则在到达此语句时将收到 HTTP 401“拒绝访问”消息。

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 版本;若是可能,应使用 IIS Express。 有关详细信息,请参阅 本主题前面的使用 IIS Express

经过直接将 IIS 用做开发 Web 服务器,使您可以在更接近于 IIS 生产 Web 服务器的环境中工做。 这可帮助您在项目投入使用以前解决配置问题。 若是您使用 IIS Express,则转换到 IIS 生产 Web 服务器可能会要求您执行额外的配置任务,由于测试服务器和生产服务器之间存在不一样的安全上下文。

与使用 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 8net 站点或 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 StudioRunning 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

 

原文转自:https://msdn.microsoft.com/zh-cn/library/58wxa9w5.aspx

相关文章
相关标签/搜索