事情的起因是,我们在项目中使用了URLRewriter.dll作为实现伪静态的工具,在VS2010及之前的开发环境中,该功能运行正常,但在VS Express 2012 for Web中就不起作用了,追究原因,找到是IIS Express配置的问题,因为IIS Express与IIS的配置很相似,并且在这个过程中对以前Asp.net配置中的未有甚解的配置项重新看过了一遍,所以记录下来,以免以后遇到这样的问题还要再将原始文档翻看一遍。

这个追究原因的过程是:

IIS和IIS Express的配置

  1. 从IIS7开始使用基于XML的配置系统来存储IIS的设置信息(就是将IIS的设置存储在XML文件中),而在IIS7之前,这些配置信息是使用元数据(metabase)来存储IIS的设置信息的;参看:http://www.iis.net/configreference;IIS的配置文件共有ApplicationHost.config;Administration.config(IIS Express无此配置文件);Redirection.config;
  2. 存储IIS配置信息的XML文件,其组织形式类似于Asp.net的配置文件,表现在:(1)使用后缀名.config;(2)层次式(下层中的配置项可覆盖上层中的配置项);(3)配置文件中均有<configSections />定义配置节处理器,其余部分为配置节处理器的配置信息;
  3. IIS配置文件Administration.config中的<modules>元素用于定义可以在IIS管理器中提供的功能;也就是你打开IIS Manager后,在Feature View界面上能够看到的每个Feature,都是<modules>元素的一个子元素。大概因为IIS Express不提供定制Feature的功能且不提供UI界面,所以,IIS Express无此配置文件;参看:http://www.iis.net/configreference/modules;
  4. ApplicationHost.config中的<modules>元素,现在我弄不清是干什么的了,参考链接是:http://www.iis.net/configreference/system.webserver/modules,有时间在研究研究吧;
  5. ApplicationHost.config中的<handlers>元素用来定义处理特定文件扩展名或URL的处理程序(handler),Handler是IIS的组件,不同的Hanlder被配置用来处理对特定内容的请求;IIS中配置的托管Handler和Asp.net中的Handler是一个概念,只不过默认情况下这些托管handler只在IIS的集成模式下其作用,若需在IIS经典模式使用,则需要在ASP.net应用程序的Web.config中的<system.server><HttpHandler>中配置(当然IIS还有不同于托管Handler的其他的handler类型),参看:http://www.iis.net/configreference/system.webserver/handlers
  6. IIS或Asp.net是如何找到handler的?还有Handler类型也搞不明白;

有关Asp.net配置文件的几个问题(MSDN中有关Asp.net配置的地址是:http://msdn.microsoft.com/zh-CN/library/ms178683.aspx)

  1. <system.web>:是ASP.NET 配置设置的根元素,包含用于配置 ASP.NET Web 应用程序和控制其行为方式的配置元素;
    1. <HttpModules>
    2. <HttpHandlers>
  2. <system.web.extention>:是ASP.NET 扩展配置节的根元素,包含用于配置 ASP.NET 服务和控制其行为方式的元素(注意和<system.web>的异同);
  3. <system.webServer>:只在IIS7.0及以上的集成模式中其作用,在经典模式下,将忽略其中配置的内容;

IIS/IIS Express/Asp.net配置片段记录的更多相关文章

  1. IIS 7完全攻略之日志记录配置(摘自网络)

    IIS 7完全攻略之日志记录配置 作者:泉之源 [IT168 专稿]除了 Windows 提供的日志记录功能外,IIS 7.0 还可以提供其他日志记录功能.例如,可以选择日志文件格式并指定要记录的请求 ...

  2. 1.4部署到IIS「深入浅出ASP.NET Core系列」

    希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,谢谢关注. 很多人第一次在IIS中部署Asp.Net Core App的人都会遇到问题,会发现原来的部署方式无法运行Asp.N ...

  3. IIS Web 服务器/ASP.NET 运行原理基本知识概念整理 转

    转http://www.cnblogs.com/loongsoft/p/7272830.html IIS Web 服务器/ASP.NET 运行原理基本知识概念整理  前言:      记录 IIS 相 ...

  4. Windows + IIS 环境部署Asp.Net Core App

    环境:Windows Server 2012, IIS 8, Asp.Net Core 1.1. 不少人第一次在IIS中部署Asp.Net Core App的人都会遇到问题,会发现原来的部署方式无法运 ...

  5. 深度理解IIS下部署ASP.NET Core2.1 Web应用拓扑图

    原文:深度理解IIS下部署ASP.NET Core2.1 Web应用拓扑图 IIS部署ASP.NET Core2.1 应用拓扑图 我们看到相比Asp.Net, 出现了3个新的组件:ASP.NET Co ...

  6. Asp.Net SignalR 使用记录 技术回炉重造-总纲 动态类型dynamic转换为特定类型T的方案 通过对象方法获取委托_C#反射获取委托_ .net core入门-跨域访问配置

    Asp.Net SignalR 使用记录   工作上遇到一个推送消息的功能的实现.本着面向百度编程的思想.网上百度了一大堆.主要的实现方式是原生的WebSocket,和SignalR,再次写一个关于A ...

  7. ASP.NET Core 2.2 和之前版本区别: 可以在IIS上进行ASP.NET核心进程托管 (翻译)

    原文链接: https://weblog.west-wind.com/posts/2019/Mar/16/ASPNET-Core-Hosting-on-IIS-with-ASPNET-Core-22 ...

  8. Windows Server 2008 R2 + IIS 环境部署Asp.Net Core App

    Windows + IIS 环境部署Asp.Net Core App   环境:Windows Server 2012, IIS 8, Asp.Net Core 1.1. 不少人第一次在IIS中部署A ...

  9. VS2013中使用本地IIS+域名调试ASP.NET项目

    VS2013中使用本地IIS+域名调试ASP.NET项目 在有些情况下需要使用本地的IIS作为调试服务器,如支持多域名的网站,这里记录下如何使用. 1.修改本机hosts文件. 路径:C:\Windo ...

随机推荐

  1. Requests库练习

    预备知识 字符串方法 用途 string.partition(str) 有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 ...

  2. ref的用法

    ref可以修改变量作为参数调用的值,但必须要初始化,不能在调用的函数中初始化 static void Main(string[] args) { ; Console.WriteLine("m ...

  3. 传智播客DotNet面试题

    技术类面试.笔试题汇总(整理者:杨中科,部分内容从互联网中整理而来) 注:标明*的问题属于选择性掌握的内容,能掌握更好,没掌握也没关系. 下面的参考解答只是帮助大家理解,不用背,面试题.笔试题千变万化 ...

  4. 【转】iOS学习之容易造成循环引用的三种场景

    ARC已经出来很久了,自动释放内存的确很方便,但是并非绝对安全绝对不会产生内存泄露.导致iOS对象无法按预期释放的一个无形杀手是——循环引用.循环引用可以简单理解为A引用了B,而B又引用了A,双方都同 ...

  5. 洛谷 P1387 最大正方形 Label:奇怪的解法

    题目描述 在一个n*m的只包含0和1的矩阵里找出一个不包含0的最大正方形,输出边长. 输入输出格式 输入格式: 输入文件第一行为两个整数n,m(1<=n,m<=100),接下来n行,每行m ...

  6. 学习Sass 的基本语法规则[Sass和compass学习笔记]

    自从发现可编程的css语法 Sass和基于Sass的css库compass 一个给我的感觉像c# 另外一个给我的感觉像.NET Framework,一切都为了提升开发效率和降低开发大型web的门槛. ...

  7. tornado学习笔记14 HTTP1ServerConnection分析

            代表HTTP/1.x 类型的服务器连接,负责处理HTTP/1.x类型的请求. 14.1 构造函数 def __init__(self, stream, params=None, con ...

  8. Linux下面桌面的安装

    挂载光盘后配置yum文件,配置后 使用yum grouplist 命令 查看组 用yum install '"GNOM桌面组 输入 init 5   即可进入桌面模式 0 关机  3命令行级 ...

  9. Odoo Email Template Problem

    Odoo 8.0 的邮件模板是运行自jiajin2沙盒中的阉割版mako,像自定义及 <%%>等功能都无法正常使用. 且for-loop %for %endfor不能嵌套在table中使用 ...

  10. MySQL 高可用架构之MMM

    简介 MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序.MMM使用Perl语言开发,主要用来监控和管理My ...