不要勾选【覆盖应用程序根URL(U)】,或者让下面的输入框【覆盖应用程序根URL(U)】和上面的输入框有相同的地址!
我用VS2013已经有一段时间了,因为前期写的是C/S程序,没有用B/S调试器。前几天创建了一个MVC项目,突然发现VS2013无法调试。我报告了这样一个错误。
我一下子有点疑惑,为什么?
修改项目属性的Web项,如下所示。
F5正在运行,但仍有错误。
这个时候我知道Web调试器没有启动,但是我不明白为什么。所以我检查了iis8.5的安装,安装了所有可能需要安装的东西。
F5正在运行,问题仍然存在。
问题的焦点已经很明确了,就是IIS Express启动失败。所以我想到检查事件,看看是否有更具体的日志。
有三个相关的事件,前两个是相同的,如下所示。
和iisnode有什么关系?众所周知,iisnode是集成在IIS中的一个模块,用于托管node.js应用程序,而不是自托管的node.js进程。
“c:\ program files(x86)\ IIS node-dev \ release \ x86 \ IIS node . dll”根本不存在,这让我更晕了。IIS Express启动失败的原因尚不清楚。
我决定弄清楚IIS Express到底是什么。
=====================================================
目前,程序员只能通过以下两种网络服务器中的一种来开发和测试ASP.NET网站程序:
1. Visualize the ASP that comes with the studio. Web development server (webdev.exe).
2.Windows附带的IIS Web服务器。
以上两种方案各有利弊,很多ASP.NET程序员告诉我们:“我希望有一个像ASP.NET开发服务器一样好用,但又像IIS一样强大的服务器”。今天我很高兴地宣布,
我们将提供另一种新的、免费的选择,它结合了前两种方案的优点——IIS Express,这使得开发和运行ASP.NET网站程序更加容易。
IIS Express支持VS 2010和Visual Web Develop 2010 Express,可以在Windows XP及更高版本上运行。它可以在没有管理员权限的情况下运行。
也不需要对代码做任何修改。你可以用它来开发各种ASP.NET程序,它还支持一套完整的IIS 7.x功能。
现有方案
在详细介绍IIS Express之前,我们先来看看ASP.NET开发服务器和IIS是如何工作的。
ASP.NET开发服务器
Visual Studio自带的ASP.NET开发服务器(开发代号“Cassini”)的优势在于简练和便于快速启动。它不需要监听远程连接请求(因此在大部分企业的安全网络环境中都可以使用它),
你甚至都不需要使用管理员账号就能启动它,而且它也不要求额外的安装步骤。
正是因为具备启动方便这一巨大优势,才使得它成为ASP.NET项目的默认服务器,当你在Visual Studio中按下F5时就会启动它。
但ASP.NET开发服务器的缺点是它不提供完整的Web服务器功能。比如说,它不支持SSL,URL重写规则,自定义安全设置,和其它在IIS 7中支持的功能。
IIS Web服务器
用Visual Studio运行和测试程序还有第二个选择— IIS。你可以通过右键单击Visual studio中的Web项目,
打开它的属性(在属性窗口中单击“Web”标签)来配置Web工程使用IIS。
使用IIS作为你的开发服务器允许你测试完整的Web服务器具备的功能(SSL,URL重写规则等)。IIS是一个货真价实的Web服务器—这意味着和在作业服务器上部署差不多开发环境。
但是采用IIS的缺点是,有些公司并不允许在开发机上安装完整的Web服务器。IIS还要求使用管理员帐号来安装和调试网站。不同版本的Windows又支持不同版本的IIS。例如,在Windows XP上,
你只能使用自带的IIS 5.1—所有IIS 7.x的新功能它都不支持。另外,在VS里配置网站项目使用IIS,还得一些额外的安装和配置步骤。
IIS Express — “鱼”和“熊掌”兼得
IIS Express综合了ASP.NET开发服务器易用性的优势和IIS强大的功能。确切地说:
它简练并且易于安装(文件大小不到10兆而且安装速度相当快)。
在Visual Studio中不需要管理员权限即可启动和调试程序。
提供了完整的Web服务器功能——包括SSL, URL重写,多媒体支持和所有其他的IIS 7.x模块。
它的可扩展模型和web.config配置结构和IIS 7.x是一样的。
它可以和IIS Web服务器还有ASP.NET开发服务器同时运行在同一台机器上(他们不会相互冲突)。
它支持Windows XP及更高版本的操作系统—在所有操作系统平台上提供了完整的IIS 7.x功能集。
IIS Express(跟ASP.NET开发服务器一样)可以快速地从硬盘上的某个文件夹上启动网站程序。它不需要任何注册或配置步骤。在网站开发过程中,这个特性使启动和运行网站显得相当便捷。
与VS的整合
Visual Studio 2010的SP1引入了IIS Express支持。你将可以配置VS 2010使用它取代ASP.NET开发服务器作为ASP.NET项目默认的Web服务器。
跟现在的ASP.NET开发服务器一样,你不需要在IIS Express里注册站点或者虚拟目录。它支持和ASP.NET开发服务器相同的使用方法——只是添加了更多的功能而已。
当你按下F5来运行ASP.NET项目时,Visual Studio自动启动IIS Express并且使用它来运行和调试网站程序(不需要额外的配置)。跟ASP.NET开发服务器一样,
IIS Express运行时,会在任务栏的通知区域显示一个小图标:
右键单击上面的图标并选择“退出”就可以快速关闭IIS Express。你也可以通过右键单击来列出正在运行的站点列表,还有站点的文件夹路径以及使用的.NET版本:
[备注:上图IIS Express为英文版]
请注意上图中两个很酷的地方:
1. 正在运行的站点“Test Site”,还有IIS Express本身,保存在硬盘的c:\users\[用户名]文件夹中。这就允许非管理员用户使用IIS Express和网站,
而且还支持一些现在的IIS服务器没有办法实现的场景(例如可以在受限的企业网络环境或受限的学校公共电脑上运行IIS Express)。
2. 上面正在运行的站点“Test Site”同时支持HTTP和HTTPS的访问方式。IIS Express通过自动安装“自签名证书”来支持URL访问控制列表(URL ACL)和SSL认证,
这样程序员(以非管理员用户登录电脑)可以在不需要提升用户权限,或执行额外设置的情况下就可以使用SSL。这个功能允许你在程序中为SSL设置需要保护的页面(比如登录页面),
并且在开发过程中象在真实的web服务器里那样运行和测试这些页面。
IIS 7.x功能集
IIS Express就像你现在已经熟悉的ASP.NET开发服务其那样容易启动和使用。 但是因为IIS Express是基于与IIS 7x相同的代码,你可以用到完整Web服务器的功能集合。
这也就意味着你可以像在真实的作业Web服务器上创建和运行你的程序。除了SSL,你还可以使用IIS 7.x的URL重写模块、多媒体插件、动态内容压缩、高级日志功能、自定义安全