如何让aspnet服务加载静态资源html(我的动态网页静态化) 转
我们知道,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(我的动态网页静态化) 转的更多相关文章
- Android 三级联动选择城市+后台服务加载数据库
技术渣,大家将就着看 首先我们需要一个xml数据保存到数据库,这里我从QQ下面找到一个loclist.xml文件 <CountryRegion Name="中国" Code= ...
- Unity3D研究院之异步加载游戏场景与异步加载游戏资源进度条
Unity3D研究院之异步加载游戏场景与异步加载游戏资源进度条 异步任务相信大家应该不会陌生,那么本章内容MOMO将带领大家学习Unity中的一些异步任务.在同步加载游戏场景的时候通常会使用方法 Ap ...
- 分析https网页加载http资源导致的页面报错原因及其解决方案
https网页加载http资源导致的页面报错及解决方案 https是当下的网站的主流趋势,甚至像苹果这样的大公司,则完全要求用户必须使用https地址. 然而对于以前http链接来说,我们往往就存在一 ...
- Spark动态加载外部资源文件
Spark动态加载外部资源文件 1.spark-submit --files 动态加载外部资源文件 之前做一个关于Spark的项目时,因项目中需要读取某个静态资源文件,然后在本地IDEA测试一切皆正常 ...
- 填补Resources和WWW加载本地资源的坑
总的来说Resources和WWW加载本地资源坑比较多,大多与路径有关. 下面代码构成了一个路径的预读模块: 此模块主要解决的坑是:Resources或WWW加载本地的文件夹中的多个文件时,无法获取文 ...
- Error #2044: 未处理的 IOErrorEvent:。 text=Error #2035: 找不到 URL这是flash加载外部资源时有时会遇到的问题,对于此问题解决如下
导致这个错误的主要原因是未添加IOErrorEvent事件监听,或者添加了监听,但是加载时使用了unload() 参考资料: http://blog.csdn.net/chjh0540237/arti ...
- schtasks在win7下提示错误:无法加载列资源
转自: http://blog.chinaunix.net/uid-24946452-id-2887851.html 查看cmd 编码 chcp 如使用 936中文GBK编码的话 schtasks.e ...
- iOS webView 远程html加载本地资源
昨天,一个朋友让我帮他在IOS上弄这样一件事情: webView 调用远程URL,并且让远程的web 通过自定义标签能实现内嵌本地的图片.js 或音频等. 比如:在服务器端 的html文件中 这样写到 ...
- ArcGIS API for Silverlight 调用GP服务加载等值线图层
原文:ArcGIS API for Silverlight 调用GP服务加载等值线图层 第二篇.Silverlight客户端调用GP服务 利用ArcGIS API for Silverlight实现G ...
随机推荐
- jqurey的跨域使用getjson(http://www.jb51.net/Special/894.htm)
JS的跨域问题,我想很多程序员的脑海里面还认为JS是不能跨域的,其实这是一个错误的观点:有很多人在网上找其解决方法,教其用IFRAME去解决的文章很多,真有那么复杂吗?其实很简单的,如果你用JQUER ...
- Redis配置文件参数说明
Redis配置文件参数说明 1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 daemonize no 2. 当Redis以守护进程方式运行时,Redis ...
- 编程模式之观察者模式(Observer)
观察者模式由四个角色组成:抽象主题角色,抽象观察者角色,具体主题角色,抽象观察者角色,具体观察者角色. 抽象主题角色(Subject):把所有的观察者角色的引用保存在一个集合中,可以有任意数量的观察者 ...
- WCF 编程实验室
最近由于项目需要,简单研究了一下.NET WCF编程. 首先,简单说下WCF是什么,WCF 本质上,是一种开发框架.它用来开发类似COM+ .WEB SERVICE 这样“远程方法调用” 功能. 普通 ...
- java能不能自己写一个类叫java.lang.System/String正确答案
原文: http://www.wfuyu.com/php/22254.html 未做测试 ! 最近学习了下java类加载相干的知识.然后看到网上有1道面试题是 能不能自己写个类叫java.lang.S ...
- 情感分析的现代方法(包含word2vec Doc2Vec)
英文原文地址:https://districtdatalabs.silvrback.com/modern-methods-for-sentiment-analysis 转载文章地址:http://da ...
- SQL ROW_NUMBER()实现取组内最新(最大)的数据
SELECT * FROM(select ROW_NUMBER() over(partition BY sid order by cscore desc) as tid,sid,cname,cscor ...
- Net分布式系统之四:RabbitMQ消息队列应用
消息通信组件Net分布式系统的核心中间件之一,应用与系统高并发,各个组件之间解耦的依赖的场景.本框架采用消息队列中间件主要应用于两方面:一是解决部分高并发的业务处理:二是通过消息队列传输系统日志.目前 ...
- C, C#, AS3的变量
高级语言中变量分值类型和引用类型, C中则分栈和堆, 在作为函数参数传递时,值类型复制,引用类型传递引用,不复制: 高级语言中一些基本类型默认是值类型, 其他基本都是引用类型. C语言中栈和堆变量可以 ...
- 嵌套移动APP端的H5页面meta标签
<meta charset="utf-8"> <meta content="width=device-width, initial-scale=1.0, ...