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 服务器。

下表提供了用来在 Visual Web Developer 中选择 Web 服务器的摘要指南。


Web 服务器


何时使用


IIS Express


IIS Express 是 Visual Studio 2012 和 Visual Studio 2013 中 Web 应用程序项目的默认 Web 服务器,推荐用于 Web 应用程序项目和网站项目。


本地 IIS


在以下情况使用 IIS:您想要使用与运行活动站点的服务器环境最为接近的服务器环境来测试 Web 应用程序,而且您可以在开发计算机上安装和使用 IIS。 有关详细信息,请参阅 本主题后面的将 IIS 作为开发服务器与 Visual Studio 结合使用的缺点

可以将 IIS 用于 Web 应用程序项目,但不能将其用于网站项目。


外部主机


您可以指定将用于测试的外部主机的 URL。 有关详细信息,请参阅 本主题后面的将外部主机作为开发服务器与 Visual Studio 结合使用的优点


自定义 Web 服务器


Visual Studio 2013 增加了对在您的项目中指定自定义 Web 服务器的支持;此功能使开发人员能够定义用于测试其 Web 应用程序的环境。

IIS Express 设计为模拟 IIS,但 IIS Express 与 IIS 完整版之间的细微差异可能导致错误,这些错误只会在您已将网站部署到 IIS 生产版之后发生。 有关详细信息,请参阅 本主题后面的使用 IIS Express 的缺点。 如果使用 IIS Express,则建议先在使用目标 IIS 版本的临时服务器上测试应用程序,然后再将它部署到活动站点。

为 Visual Studio Web 项目指定 Web 服务器


默认情况下,Visual Studio 2012 和 Visual Studio 2013 使用 IIS Express。 有关以下内容的详细信息如何指定一种替代 Web 服务器,请参见How to: Specify the Web Server for Web Projects in Visual Studio

结合使用 IIS Express 与 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 的缺点

安装 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. 下载安装程序,然后按照步骤完成安装。

使用 IIS Express 系统任务栏应用程序


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

下表列出了针对 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 访问)。

更改 IIS Express 的端口


在新建基于文件的网站项目或 Web 应用程序项目时,将会为该项目随机选择一个端口。 例如,如果要测试名为 ExamplePage.aspx 的页面,则当在 IIS Express 上运行该页面时,页面的 URL 可能为:

http://localhost:31544/ExamplePage.aspx

如果要在特定端口上运行 IIS Express,可以对服务器进行相应配置。 在下列情况中您可能要执行上述操作:

  • 您已复制一个 Web 应用程序项目或网站项目,并且您需要对这两个项目同时进行调试和处理。 在这种情况下,将会出现端口冲突,必须更改其中一个项目的端口名称。
  • 您的项目包括对绑定到特定端口的客户端项目或 Web 服务的引用。
  • 项目中的代码将侦听某个特定端口,并且您希望能够使用 IIS Express 测试应用程序。

使用 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 中运行应用程序,在应用程序外观上不会有变化。

但是,当您部署到 IIS(或选择 IIS 作为 Visual Studio 中的开发 Web 服务器)时,您可以看到 CSS 样式丢失,因为 IIS 无法找到该资源:

IIS Express 的安全上下文


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 一起使用


Visual Studio 2013 使您能够配置外部 Web 服务器来进行测试,此功能在 Visual Studio 2012 和较早的 Visual Studio 版本中称为“自定义 Web 服务器”。 当开发人员将其 Web 应用程序配置为使用外部主机进行测试时,开发人员会享有若干优势,下面的各部分将讨论这些内容。

将外部主机作为开发服务器与 Visual Studio 结合使用的好处


例如,如果您 Web 应用程序的文件存储在网络共享上,而网络共享也是 IIS 在开发或临时 Web 服务器上承载的网站的内容文件夹,则您可以输入该网站的 URL 作为外部主机。 此方案使其他客户端能够测试应用程序,这在使用 IIS Express 时是不可能的,因为它设计为在本地计算机上进行测试。

因为外部主机服务器通常位于远程服务器上,所以每次您按 F5 开始调试时,不会重新构建您的应用程序。 这使您能够忽略仍处于开发阶段的源代码文件中的生成错误,但仍能够测试应用程序中已完成的部分。

此外,因为您的远程 Web 服务器可能作为服务运行,所以,应用程序测试似乎可能响应时间更快,因为网站已在运行。 相比之下,当每次按 F5 调试应用程序时,都可能需要重新启动 IIS Express。

使用外部主机的缺点


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

将自定义 Web 服务器和 Visual Studio 一起使用


Visual Studio 2013 使开发人员能够向其项目中添加自定义 Web 服务器,Visual Studio 将在下拉菜单中显示这些自定义 Web 服务器以及内置的 Web 服务器类型。 有关以下内容的详细信息配置自定义 Web 服务器,请参见 http://go.microsoft.com/fwlink/?LinkID=324006

结合使用 IIS 与 Visual Studio


用于 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 作为开发服务器与 Visual Studio 结合使用的好处


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

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。

安装并配置 IIS 以用于 Visual Studio


在 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 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

时间: 2024-10-06 00:50:03

Visual Studio中用于ASP.NET Web项目的Web服务器的相关文章

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

Visual Studio 中用于 ASP.NET Web 项目的 Web 服务器 当您在 Visual Studio 中开发 Web 项目时,需要 Web 服务器才能测试或运行它们.             利用 Visual Studio,您可以使用不同的 Web 服务器进行测试,包括 IIS Express.Internet Information Services (IIS).外部主机或自定义 Web 服务器.  您可以将其中任何一种 Web 服务器用于基于文件的 Web 应用程序项目.

在Chrome+Visual Studio中调试asp.net程序很慢的问题(Firefox也有类似问题)

在Chrome+Visual Studio中调试asp.net程序很慢的问题(Firefox也有类似问题) 今天开始起在Chrome中调试,发现问题主要出在菜单栏(layout文件)中,google了一番,查到很多原因,不过最终解决方法倒是很简单,特此分享一下: 在C:/Windows/System32/drivers/etc里边有一个hosts文件,用记事本打开,里边最后几行原来是: # localhost name resolution is handled within DNS itsel

Visual Studio中xml文件使用app.config、web.config等的智能提示的方法

在.Net开发的过程中,有时我们需要使用Xml文件作为配置文件(基于某些情况的考虑),而不是app.config.web.config这种,但是我们在xml中配置时希望可以增加类似编辑app.confg.web.config文件时的智能提示. 没有作特殊配置时,编写xml文件如下: 从上图可以看到,没有智能提示.但是我们编辑app.config.web.config时有智能提示,比如上面的configuration,我们可能只要输入前面几个字母就会弹出智能提示,然后可以直接从下来中选择.如下图:

【翻译】在Visual Studio中使用Asp.Net Core MVC创建你的第一个Web API应用(一)

HTTP is not just for serving up web pages. It's also a powerful platform for building APIs that expose services and data. HTTP is simple, flexible, and ubiquitous. Almost any platform that you can think of has an HTTP library, so HTTP services can re

maven web项目的web.xml报错The markup in the document following the root element must be well-formed.

maven项目里面的web.xml开头约束是这样的 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java

Web 应用程序项目与 Visual Studio 中的网站项目的异同

要查看英语原文,请勾选“英语”复选框.也可将鼠标指针移到文本上,在弹出窗口中显示英语原文. 翻译 英语 本文档已存档,并且将不进行维护. Web 应用程序项目与 Visual Studio 中的网站项目 在Visual Studio可以创建 Web 应用程序项目 或 网站项目. 通过选择 新建项目 或 打开项目 创建或打开一个 Web 应用程序项目在Visual Studio 文件 菜单. 通过选择 新建网站 或 打开网站 创建或打开一个网站项目在"文件"菜单. 每种项目类型各有优缺点

Visual Studio 2015和ASP.NET 5中可用的前端开发工具集

最近微软发布了一本白皮书,谈到了一些可以和Visual Studio 2015和ASP.NET 5配合使用的JS/前端Web开发工具(比如:函数库.任务执行器.框架等). 由于现在前端开发的生态系统在快速增长,也变得越来越复杂和庞大.所以,微软特意发布了这么一个白皮书来讲解一些可以集成到VS 2015用于ASP.NET 5开发的前端工具库.这些前端工具库,都能很好的被VS2015所支持,比如提供智能提示等内置特性. 每个涉及的工具库都给出了入门介绍.基本概念,以及在VS和ASP.NET中的用法.

Visual Studio 2013新建ASP.NET项目使用Empty模板,在页面中使用验证控件出错的解决方案

Visual Studio 2013新建ASP.NET项目使用Empty模板,在页面中使用验证控件,运行页面,会出现如下的错误: 错误原因 VisualStudio 2012(或2013) WebForm 4.5 开发中,很多控件默认Enable了 Unobtrusive ValidationMode(所谓Unobtrusive Validation,就是一种隐式的验证方式)的属性(和jquery的引用相关),但并未对其进行赋值, Programmer必须手动对其进行设置.比如,在进行数据验证时

在Visual Studio中快速启动调试Web应用程序

原文:http://blog.csdn.net/effun/article/details/2638535 从2003到2005,Visual Studio在启动调试的功能上进行了一些改善,不过因为只是简单的一个F5键,很多人可能都不会注意.其实也已经不是很记得清楚在2003启动调试是什么样的问题,因为已经有两年多没用了,只是依稀记得每启动一次就会打开一个新的IE窗口.因为打开IE是需要耗费一点时间的,所以总在寻求一个办法减少这个过程所消耗的时间. 后来2005来了,这个问题被有效地解决了.VS