事情的起因是,我们在项目中使用了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. Windows内核遍历驱动模块源码分析

    要获取windows 内核中所有驱动模块信息,调用 系统服务函数 NtQuerySystemInformation,参数SystemInformationClass 传入SystemModuleInf ...

  2. 将android模拟器上的db文件拷贝到电脑上

    1. db文件在android手机中的存储地址一般都是/data/data/packname/databases/db_file. 2.打开cmd,运行 adb shell ,使用root权限 3.通 ...

  3. poj 1141 Brackets Sequence (区间dp)

    题目链接:http://poj.org/problem?id=1141 题解:求已知子串最短的括号完备的全序列 代码: #include<iostream> #include<cst ...

  4. 逗号分割符--字段中含逗号等情况的解析方法Java实现

    最近在处理文本字符串时,没一行数据都是按照逗号分割的,每个字段值一般情况是带有双引号的,但是有的字段值里面还包含逗号,甚至有的字段就没有双引号,这个分割起来就有点麻烦了 下面说一下我解决方法,如果谁有 ...

  5. 如何转换WMV到MP3,WMV到MP3播放器

    非常好的软件!!!!!没有注册,可以用.推荐给大家! http://www.daniusoft.com/cn/convert-wmv/wmv-to-mp3.html http://hi.baidu.c ...

  6. dbms_output.put_line长度限制问题

    dbms_output.put_line长度限制问题 对于10g以上版本(包括10g), dbms_output.put_line的最大长度限制是32767. 如果报错buffer overflow, ...

  7. 【原】iOS学习之控制器的创建

    本次博客是一篇总结性质的博客,总结的是各种创建控制器的方式以及一些需要注意的操作. 1.通过storyboard创建控制器 正如我上一篇博客中所说,当 Main Interface 没有选定的时候,我 ...

  8. 【原】iOS学习48地图

    一.地图的简介 在移动互联网时代,移动app能解决用户的很多生活琐事,比如 导航:去任意陌生的地方 周边:找餐馆.找酒店.找银行.找电影院 手机软件:微信摇一摇.QQ附近的人.微博.支付宝等 在上述应 ...

  9. Object-C 1.0 第二章

    1.  输出obc #import <Foundation/Foundation.h> int main(int argc,const char *argv[]) { NSLog(@&qu ...

  10. mysql刷日志的两个参数

    innodb_flush_log_at_trx_commit 0:每秒 ----log---disk1:事物提交 ---log ---disk2:事物提交---log 每秒 ---disk sync_ ...