MVC学习IIS的不同版本(一)

一:IIS5.0运行在进程InetInfo.exe中,该进程寄宿着一个名为World Wide Publishing Service(W3VC)的window服务。

  W3VC的主要功能:包括HTTP请求的监听、工作进程和配置管理

检测到HTTP 请求时:

      根据扩展名判断是否静态资源

    1、是直接将文本内容以HTTP回复的形式返回

    2.动态资源,通过IIS 的脚本映射----找到对应的ISAPI动态链接库(是IIS和其他的动态的Web应用和平台之间的纽带)

    ASP.NET中对应的ISAPI文件的名称为:aspnet_isapi.dll

    ISAPI支持ISAPI 的扩展(ISAPI Extension和ISAPI筛选) 

    ISAPI是真正处理HTTP请求的接口  ISAPI在HTTP请求真正处理之前查看、修改、转发和拒绝请求(进行请求的验证)

 

二:IIS6.0新增的功能:

1.ISAPI动态链接库直接加载到工作进程中

 2.引入了应用程序池,由于每一个应用程序池对应一个独立的工作进程,从而运行在不同的应用程序池中的Web应用提供基于进程的隔离级别

工作进程的别名(W3WP.exe)

3.创建了一个名为HTTP.SYS的HTTP监听器。属于TCP 之上的一个网络驱动程序  不在IIS的元数据库中,定义在注册表中。

三:HTTP。SYS带来的好处如下:

1.持续监听:HTTP.SYSw是一个网络驱动程序,始终处于运行状态,对于用户的HTTP请求能够及时作出反应

2.更好的稳定性:运行在操作系统的内核模式下,并不执行任何用户代码,其本身不会受到Web应用、工作进程和IIS进程的影响。

3.内核模式下数据缓存:如果某个资源被频繁请求,HTTP.SYS会把响应的内容进行缓存,响应的内容可以直接响应后续的请求(基于内核模式的缓存,不存在内核模式和用户模式的切换,响应速度得到了相应的提高)

 

四:IIS6.0和ASP.NET

  1.当HTTP.SYS监听到HTTP请求分发给W3SVC----解析出URL地址

 2 根据从Metabase获取的URL与Web应用之间的映射关系得到-----目标应用----目标应用运行的应用程序池或工作进程

 3. 如果进程不存在则创建新的工作程序进程(相应的ISAPI动态链接库被加载    ISAPI.dll为aspnet_isapi.dll)

  4.ASP.NET ISAPI在负责进行CLR加载、应用程序域的创建和Web应用的初始化操作

 

五:IIS7.0和ASP.NET

   1.引入了windows激活服务,将原来的W3SVC承载的部分功能分流给了WAS(对非HTTP协议的支持)

   2.IIS7.0中对W3SVC主要三大功能改进:

         HTTP请求的接受:接受HTTP.SYS监听到的HTTP请求  (W3SVC)

        配置管理:从元数据库(Metabase)中加载配置信息,对相关组件进行配置   (WAS)

       进程管理:创建、回收、监控工作进程  (WAS)

工作原理:WAS通过监听器适配接口抽象出不同协议的监听器 (基于网络驱动HTTP.SYS提供HTTP请求监听功能外还提供了TCP监听器、命名管道管理器和MSMQ监听器,以及提供基于TCP、命名管道和MSMQ传输协议的监听支持)

   此三种监听器相对的是3种监听适配器,他们提供监听器与WAS中监听器适配器接口之间的适配(W3SVC)更多的为HTTP.SYS提供监听适配器的作用  定义在程序集SMHost.exe

   SMHost.exe提供了4个重要的Window Serveice

   1.NetTcpPortSharing:为WCF提供了TCP端口共享

  2.NetPipeActivator:为WAS提供基于命名管道的激活请求,包括命名管道监听器和对应的监听适配器

   3.NetTcpActivator:  为WAS提供基于TCP的激活请求,包括TCP监听器和对应的监听适配器

   4.NetMsmqActivator:   为WAS提供了基于Msmq的激活请求,包括MSMQ监听器和对应的监听适配器

 

        从另一方面来讲 ,IIS运行在非托管的环境中,而Asp.Net管道则是托管的,IsApi是连接非托管和托管环境的纽带

 

IIS7.0实现了Asp.Net和IIS的集成,带来的好处:

   1.允许通过本地代码和托管代码两种方式定义IIS Module

   2.将ASP.NET的URL重写功能置于身份验证之前

   3.采用相同的方式去实现、配置、检测和支持一些服务器特性   Module、Handler映射、定制错误配置

 

转载于:https://www.cnblogs.com/sunliyuan/p/5929248.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/256284.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Halcon中visualize_object_model_3d算子详解

概念 此函数用于显示3d模型。该函数功能很多,包括设置位姿,颜色,鼠标翻转、缩放、平移,选择和取消选择目标,降低鼠标灵敏度,切换检查模式等。 参数 visualize_object_model_3d( : : WindowHandle, ObjectModel3D, CamParam, PoseIn, GenParamName, GenParamValue, Tit…

random()模块随机函数的用法总结

random()是Python中生成随机数的函数,是由random模块控制,random()函数不能直接访问,需要导入random 模块,然后再通过相应的静态对象调用该方法才能实现相应的功能 目录 1. random.random() 2. random.uniform() 3. random.ra…

ansible命令应用示例

ansible命令应用示例 ping slave组ansible slave -m ping 用bruce 用户以root 身份pingansible slave -m ping -u bruce --sudo 用bruce 用户sudo 到batman 用户pingansible slave -m ping -u bruce --sudo --sudo-user batman 给slave组安装ftpan…

史上超全halcon常见3D算子汇总(一)

读取3D模型 read_object_model_3d 此算子用于读取3D对象。 read_object_model_3d( : : FileName, Scale, GenParamName, GenParamValue : ObjectModel3D, Status) FileName:文件名,halcon支持多种3d数据格式的读取,包括 .off, .ply, .dxf, .om3, .obj, .stl等格式。 1).…

Python:常用模块简介(1)

sys模块 >>> sys.platform #返回操作系统平台名称 win32 >>> sys.stdin #输入相关 <open file <stdin>, mode r at 0x000000000337B030> >>> sys.stdout #输出相关 <open file <stdout>, mode w at 0x000000000337…

【图像处理】——Python实现图像加噪(随机噪声、椒盐噪声、高斯噪声等)

目录 1、随机噪声 2、椒盐噪声 3、高斯噪声 补充:numpy.clip函数 4、其他噪声 1、随机噪声 随机噪声就是通过随机函数在图像上随机地

100NED

将生活融入编程转载于:https://www.cnblogs.com/nedhome/p/5036680.html

Windows10 VS2019下使用CMake3.20.1打开PCL1.11.0程序

安装CMake 为什么要使用cmake cmake 是kitware 公司以及一些开源开发者在开发几个工具套件(VTK)的过程中衍生品&#xff0c;成为一个独立的开放源代码项目。 CMake是一个很强大的编译配置工具&#xff0c;支持多种平台和编译器&#xff0c;通过编写CMakeLists.txt&#xff0c…

Java 并发---ConcurrentHashMap

concurrent包下的并发容器 JDK5中添加了新的concurrent包&#xff0c;相对同步容器而言&#xff0c;并发容器通过一些机制改进了并发性能。因为同步容器将所有对容器状态的访问都串行化了&#xff0c;这样保证了线程的安全性&#xff0c;所以这种方法的代价就是严重降低了并发性…

【图像处理】——图像滤波(Python+opencv实现三种方法:均值滤波、中值滤波、高斯滤波等)

目录 一、什么是滤波以及滤波的目的? 二、均值滤波(cv2.blur()) 1、原理 2、关键代码

UIScrollView事件拦截

在日常的开发中,我们经常会用到UIScrollView,然而,它是一个问题频出的控件,比如在nib中使用它就必须手动为它创建一个ContentView.当然了使用春代码的时候使用了懒加载机制使得它能够拥有一个contentView,今天我们不谈这个问题,我们来谈谈UIScrollView的事件拦截相关的知识. 在…

Windows10下安装QT5.14.2并用VS2019打开

安装 从官网下载&#xff1a;QT 安装方法仅需要注意&#xff1a; 1.最好不要安装在C盘。 2.根据开发需要安装功能模块&#xff0c;具体见参考文章。 https://jingyan.baidu.com/article/656db918d9292ae380249c4f.html 因为是用于PCL编程的&#xff0c;所以只选了msvc2017_64,…

【图像处理】——图像质量评价指标信噪比(PSNR)和结构相似性(SSIM)(含原理和Python代码)

目录 一、信噪比(PSNR) 1、信噪比的原理与计算公式 2、Python常规代码实现PSNR计算 3、TensorFlo

Error和Exception的区别

Error&#xff1a;值得是指与虚拟机相关的问题&#xff0c;比如虚拟机崩溃&#xff0c;虚拟机错误&#xff0c;内存空间不足&#xff0c;方法调用栈溢出。 对于这类错误应建议中断。 Exception&#xff1a;是指程序员可以处理的异常&#xff0c;可以捕获并且能够恢复&#xf…

JAVA TCP/IP网络通讯编程(二)

一个实例通过client端和server端通讯 客户端通过TCP/IP传输资源文件&#xff0c;比如图片&#xff0c;文字&#xff0c;音频&#xff0c;视频等..... 服务端接受到文件存入本地磁盘&#xff0c;返回接受到&#xff1a;“收到来自于"s.getInetAddress().getHostName()"…

C#中json序列化与反序列化

json格式概念 JSON(JavaScript Object Notation) 是一种轻量级的数据传输格式&#xff0c;其采用完全独立于语言的文本格式&#xff0c;使JSON成为理想的数据交换语言。 json由两种格式组成。 1.名称/值”对的集合&#xff0c;可以一起创建多个"名称 / 值对"。 { “…

volley用法之 以post方式发送 json 参数

需求是这样 我们需要发送一个post请求向服务器要参数。要求是发送的post参数也要是json格式。 简单一点的是这样的&#xff1a; 如果要发送的是这样简单的json格式&#xff0c;我们可以简单的使用map来实现&#xff1a; RequestQueue requestQueue Volley.newRequestQueue(get…

我的友情链接

小小忍者Tab转载于:https://blog.51cto.com/12737170/2043087

JAVA 文件编译执行与虚拟机(JVM)简单介绍

详见&#xff1a;http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytpo3 java程序的内存分配 JAVA 文件编译执行与虚拟机(JVM)介绍 Java 虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上&#xff0c;就能保证经过编译的任…