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


    根据我实践经验: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"."


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



  • 相关阅读:
    分布式的并行计算技术
    深入学习 jQuery 选择器系列第三篇——过滤选择器之索引选择器
    JavaScript--我所理解的原型链
    JavaScript--我所理解的闭包
    JavaScript--函数的形参和函数内部声明的变量或函数重名时的问题
    JavaScript--substring 和 substr 方法手记
    CSS 和 CSS3 中的 background
    CSS3的 border-radius 和 box-shadow 及 text-shadow
    CSS3-渐变这个属性
    CSS中的伪类和伪元素回顾
  • 原文地址:https://www.cnblogs.com/rav009/p/5131245.html
Copyright © 2020-2023  润新知