我们知道,IIS自身是不能处理像ASPX扩展名这样的页面,只能直接请求像HTML这样的静态文件。

当客户端请求一个服务器资源时,这个HTTP请求会被inetinfo.exe进程截获(www服务),然后Check请求资源的类型,并依据资源映射信息(存储在IIS元库中,一种IIS专用的配置数据库)将请求的资源分配给特定的处理程序模块。
1,如果是静态资源的请求,则分配由IIS处理(IIS在本地Web Server上访问请求的文件),将内容输出到控制台,发出请求的浏览器就能接收到它了。-----End
2,如果是服务型请求资源(aspx),我们前面讲过:IIS自身是不能处理像ASPX扩展名这样的页面,,,那是怎么处理这种服务型资源的呢?
重点:在IIS中有一个ISAPI过滤器,它是一个COM组件。ASP.NET服务在注册到IIS的时候,就会添加一个Win32的扩展动态库aspnet_isapi.dll(默认路径:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll),在对应的扩展名中,根据定义好的方式(GET,HEAD,POST,DEBUG)来处理aspx界面。aspnet_isapi.dll处理代码,生成标准的HTML代码,返回给IIS,IIS再把内容发送到客户浏览器。------End

那Asp.Net页面运行机制---请求处理流程到底是什么样的呢?WebConfig优先级在Global前面还是后面,bin下的DLL又是什么时候装载的呢?
--------------------------
1.IIS接收到客户请求

2. IIS把请求交给aspnet_isapi.dll处理

3.(如果是第一次运行程序)装载bin目录中的dll

4.(如果是第一次运行程序)读取各级webconfig中的配置

5.(如果是第一次运行程序)编译装载global.asax,初始化HttpApplication实例

6.创建响应请求的HttpContext

7.创建承载响应结果的HttpTextWriter

8.找到合适的HttpHandler(asp.net页面),处理http请求

9.处理session,异常

10.把处理结果反馈个客户 这就是可定制的HttpModule
----------------------------

写这篇文章,是因为在做静态化处理的时候,我希望自己打开的html也被当成服务型资源,被aspnet_isapi.dll处理,而html默认是静态资源,是直接由IIS处理,不走Global等。
那这样处理的代码就没法被运行,怎么办呢?

当我们了解上面,就明白了,为什么aspnet_isapi.dll会去处理aspx呢?那是因为在ISAPI过滤器有aspx的映射关系,那如果我在ISAPI过滤器中加入.html的映射关系和处理方式,是不是也可以呢?
---------------------------------------------
在ISAPI过滤器中加入.html的映射关系和处理方式
【百度:把“.htm”映射到aspnet_isapi.dll】
操作:点击属性->配置->映射->添加->可执行文件名先aspnet_isapi.dll
扩展名输入.htm或者.html根据后缀来确定.限制为GET,HEAD,POST,DEBUG,去掉检测文件是否存在.保存即可.
---------------------------------------------

哈哈哈……是的,成功了,html成功的被aspnet_isapi.dll处理。至此,我的完美静态化处理也告一段落!!!!蛋终于不疼了。。

如何让aspnet服务加载静态资源html(我的动态网页静态化) 转的更多相关文章

  1. Android 三级联动选择城市+后台服务加载数据库

    技术渣,大家将就着看 首先我们需要一个xml数据保存到数据库,这里我从QQ下面找到一个loclist.xml文件 <CountryRegion Name="中国" Code= ...

  2. Unity3D研究院之异步加载游戏场景与异步加载游戏资源进度条

    Unity3D研究院之异步加载游戏场景与异步加载游戏资源进度条 异步任务相信大家应该不会陌生,那么本章内容MOMO将带领大家学习Unity中的一些异步任务.在同步加载游戏场景的时候通常会使用方法 Ap ...

  3. 分析https网页加载http资源导致的页面报错原因及其解决方案

    https网页加载http资源导致的页面报错及解决方案 https是当下的网站的主流趋势,甚至像苹果这样的大公司,则完全要求用户必须使用https地址. 然而对于以前http链接来说,我们往往就存在一 ...

  4. Spark动态加载外部资源文件

    Spark动态加载外部资源文件 1.spark-submit --files 动态加载外部资源文件 之前做一个关于Spark的项目时,因项目中需要读取某个静态资源文件,然后在本地IDEA测试一切皆正常 ...

  5. 填补Resources和WWW加载本地资源的坑

    总的来说Resources和WWW加载本地资源坑比较多,大多与路径有关. 下面代码构成了一个路径的预读模块: 此模块主要解决的坑是:Resources或WWW加载本地的文件夹中的多个文件时,无法获取文 ...

  6. Error #2044: 未处理的 IOErrorEvent:。 text=Error #2035: 找不到 URL这是flash加载外部资源时有时会遇到的问题,对于此问题解决如下

    导致这个错误的主要原因是未添加IOErrorEvent事件监听,或者添加了监听,但是加载时使用了unload() 参考资料: http://blog.csdn.net/chjh0540237/arti ...

  7. schtasks在win7下提示错误:无法加载列资源

    转自: http://blog.chinaunix.net/uid-24946452-id-2887851.html 查看cmd 编码 chcp 如使用 936中文GBK编码的话 schtasks.e ...

  8. iOS webView 远程html加载本地资源

    昨天,一个朋友让我帮他在IOS上弄这样一件事情: webView 调用远程URL,并且让远程的web 通过自定义标签能实现内嵌本地的图片.js 或音频等. 比如:在服务器端 的html文件中 这样写到 ...

  9. ArcGIS API for Silverlight 调用GP服务加载等值线图层

    原文:ArcGIS API for Silverlight 调用GP服务加载等值线图层 第二篇.Silverlight客户端调用GP服务 利用ArcGIS API for Silverlight实现G ...

随机推荐

  1. 一张图说懂java中 private default protected public 的区别

    private:修饰完全隐藏类的成员,这样,就不能从类的外边直接访问他们,我们提供set和get方法,保证类中数据域的安全. default:指默认修饰符,什么都不加,实际上它限制的范围就是一个包内可 ...

  2. ASP.NET 访问母版页元素总结

    第一种方法: 在母版页里面新建一个Label控件 <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="s ...

  3. scrum.4

    1.准备看板. 形式参考图4. 2.任务认领,并把认领人标注在看板上的任务标签上. 先由个人主动领任务,PM根据具体情况进行任务的平衡. 然后每个人都着手实现自己的任务. 3.为了团队合作愉快进展顺利 ...

  4. html信息提示框

    1.span <span title="提示信息" data-container="body" data-toggle="inf" d ...

  5. 创建 Web 前端开发环境

    Web 前端开发涉及多种工具,这里将常用工具的安装和配置进行说明,提供了详细的说明,为后继的开发创建一个坚实的基础. 本文介绍的工具有:NodeJS, NPM, Bower, Git 和 Grunt. ...

  6. linux学习 联网

    /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0ONBOOT=yesBOOTPROTO=staticIPADDR=192.168.199.** ...

  7. copy(python中的引用,浅拷贝,深拷贝)

    #直接赋值 list = [1,2,['a','b'],'python'] #现将a等于list a = list print a [1,2,['a','b'],'python'] list.appe ...

  8. Eclipse设置默认注释

    在 windows-->preferenceJava-->Code Style-->Code Templatescode-->new Java file点编辑,覆盖原文本: $ ...

  9. oracle 几个不常用的关键字

    ntile (n)是分析函数,n是吧窗体的数据分成几组. sys_connect_by_path 用来列转行 connect_by_isleaf 判断层级查询是否为叶子节点. siblings 用来层 ...

  10. ES 集群

    http://www.cnblogs.com/o-andy-o/p/5067184.html