我们知道,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. php 判断文件/目录是否存的方法

    涉及函数 is_file(), is_dir() , file_exists() is_file() 判断文件是否存在 is_dir() 判断目录是否存在 file_exists() 既可用于判断文件 ...

  2. webpack 入门

    webpack webpack,是一款模块加载器兼打包工具.能将 JS.coffee.less.sass.图片等作为模块来使用. 经过一个多月的摸索,姑且算是入门了.因此重新写个小DEMO来加深自己对 ...

  3. Memcached安装配置及访问

    1.Memcached键值对访问,对于网页来说,key需要使用uri. 2.Memcached的相关配置 memcached:缓存服务器,但本身无法决定缓存任何数据 一半依赖于客户端,一半依赖于服务端 ...

  4. group_concat函数使用

    t1表 语句: select type,group_concat(name) from t1 group by type 结果

  5. SCN

    SCN 一.SCN的引入 众所周知,当oracle实例崩溃时,oracle通过检查点队列使用CKPT进程,周期性的将LRBA记入控制文件,以记录读取REDO LOG的范围.确定范围之后,oracle首 ...

  6. WAMPP安装后mysql无法启动

    上午 10:23:42 [mysql] This may be due to a blocked port, missing dependencies, 上午 10:23:42 [mysql] imp ...

  7. 数字信号处理--Z变换,傅里叶变换,拉普拉斯变换

    傅立叶变换.拉普拉斯变换.Z变换最全攻略 作者:时间:2015-07-19来源:网络       傅立叶变换.拉普拉斯变换.Z变换的联系?他们的本质和区别是什么?为什么要进行这些变换.研究的都是什么? ...

  8. cf 730i

    题意:有n个人,每个人有两个能力值,选a个人用它的第一个能力值,b个人用它的第二个能力值,每个人只能选一次,求一个方案使得能力值之和最大,并输出选择方案. 题解:最小费用最大流,原点1向n个人每个人i ...

  9. curd 里url传输汉字验证错误问题解决方法

    在url汉字转换的部分用base64_encode转化 base64_encode 将字符串以 BASE64 编码. 语法: string base64_encode(string data); 返回 ...

  10. 【SVN】Error running context: 由于目标计算机积极拒绝,无法连接

    SVN服务没开启,步骤如下: 1.打开[控制面板]→[管理工具]→[服务]: 2.找到[visual SVN Sever],右击选择[启动]: 3.服务开启后,导入数据就成功了!