现在的位置: 首页 > 综合 > 正文

IIS express 配置和500.22错误解决详解

2013年06月20日 ⁄ 综合 ⁄ 共 2742字 ⁄ 字号 评论关闭

根据我实践经验:IIS Express还是只跑一个网站比较好,多了容易出错

配置转载一篇:

IIS Express7.5
微软Scott Guthrie发布了IIS Express:IIS的一个轻量级替代品,有希望替代Cassini(Visual Studio的内置Web服务器)。
IIS Express旨在解决Cassini的众多问题,开发者可以使用完整的IIS 7.x特性进行开发。
Windows XP或后面的操作系统都可以运行IIS Express,并不需要管理员帐户,它支持ASP、PHP、SSL、URL Rewrite、Media和其他IIS所支持的文件类型与扩展。
给Visual Studio 2010安装完一个补丁后就可以在Visual Studio 2010和Visual Web Developer 2010 Express中使用IIS Express了,之后发布的Visual Studio将会自带IIS Express。

伴随着ASP.net MVC 3而来的新东西,其中就包含IIS Express 7.5,介绍如下:
 轻量,易于安装,安装包不到5M; 
从VS中启动、调试应用程序不需要管理员身份; 
带有完整的WEB服务器功能支持——支持SSL、URL回写以及其它IIS7.x的模块 
和IIS7.x完全一致的web.config配置模型 
可以和IIS、ASP.net Development Server 同时安装,没有任何冲突 
支持XP及更高的操作系统,在所有的系统上都提供IIS7.x一致的开发功能 


1,安装iisexpress_1_10_x86_zh-CN.msi

2,配置文件 c:\Program Files\IIS Express\config\templates\PersonalWebServer\applicationhost.config

配置文件中的节点默认情况下我们并不需要太多关注,因为大多数情况下我们需要关注的只有 <sites> 下的 <site> 节点,这里保存了网站、应用程序的定义,才是我们需要真正关心的。
 
①.每个 <site> 就是一个网站。
 
这和IIS中的网站是一样的概念。serverAutoStart 设置了是否随着 IIS Express的启动而自动启动。如果设置为true,那么每次 IIS Express 启动都会自动加载(如果没有指定网站的话),否则只有以指定特定网站的模式运行时才会加载。
 
使用IIS Express加载特定网站的语法是:  IISExpress.exe /site:<站点名>
 
②.<site> 下的<bindings>设置了这个站点的绑定信息。
 
节点下的每个<binding>都是一个端口绑定信息。典型的绑定配置如下:<binding protocol="http" bindingInformation="*:8080:localhost" />
 
protocol 指定了绑定的协议类型(IIS Express内建了 HTTP 和 HTTPS两种协议支持),而“*:8080:localhost”则指定的绑定的具体信息,它有三个部分组成:“绑定的IP:端口:主机名”。默认情况下,绑定到任何本地IP、非保留端口、绑定到localhost。注意这个localhost,有讲究,特定情况下可能会导致你很困惑,请参考本文后面的内容。
 
③.<application> 这个节设置了网站的应用程序
 
每个网站都需要至少一个映射路径为“/”应用程序(它映射到根目录)。除此之外,你可以继续添加并行的不同路径的 <application> ,这就类似于IIS中的网站里配置的应用程序。
 
例如,在FishSite这个网站中,我需要添加一个单独的应用程序,映射到根目录下的fish目录,那么我就可以这样配置:
 <site name="FishSite" id="2">
     <application path="/" applicationPool="Clr2IntegratedAppPool">
         <virtualDirectory path="/" physicalPath="<网站的根目录>" />
   </application>
     <application path="/fish" applicationPool="Clr2IntegratedAppPool">
         <virtualDirectory path="/" physicalPath="<此应用程序的根目录>" />
         <virtualDirectory path="/content/" physicalPath="</fish/content/ 目录对应的虚拟目录>" />
     </application>
     <bindings>
         <binding protocol="http" bindingInformation="*:5000:localhost" />
     </bindings>
 </site>
 
在<site>中,只有 path="/" 这个应用程序是必须的(不能缺少),其它都是可以任意添加的。
 
④.<virtualDirectory> 设置了目录的映射信息
 
参见上面展示的代码。在每个<application>节下,必须至少存在一个 path="/" 的 virtualDirectory,它代表了这个目录映射的位置。除此之外,可以手动添加多个映射的路径不同的虚拟目录。
 


3,修改好配置文件后,启动IIS Express
启动  c:\Program Files\IIS Express\iisexpress.exe

4,在浏览器中输入http://localhost:8080 即可访问网站

出现500.22错误?

运行 cmd,进命令行模式,cd到你IIS Express的目录,运行appcmd migrate config "Default Web Site/"。

注意这里Default Web Site是你在上面那篇文章里site节点里配置的name,比如<site name="SampleWeb" id="1" serverAutoStart="true">里的SampleWeb,这里可能会报错,说:命令“MIGRATE”在对象“CONFIG”上不受支持。请运行“appcmd.exe CONFIG /?” 显示支持的命令。"

解决办法是到IIS express的目录下找到appcmd.xml,把<verb name="migrate" classId="DefaultConfigObject"  />这句的注释去掉,

然后在运行上面那句命令,成功的话出现

Successfully migrated section "system.web/httpModules".

Successfully migrated section "system.web/httpHandlers"."


问题解决,感谢烙馅饼喽  分享上面的经验

抱歉!评论已关闭.