今天公司终端上有一个功能打开异常,报500错误,我用Fiddler找到链接,然后在IE里打开,报500.23错误:检测到在集成的托管管道模式下不适用的ASP.NET设置。后台是一个IIS7和tomcat7集成的环境,此处记录一下。
我的系统是win2008,iis7.部署webapi后,应用池只能用经典模式。且要添加一个映射:
http.sys 是一个位于Win2003和WinXP SP2中的 操作系统核心组件,能够让任何应用程序通过它提供的接口,以http协议进行信息通讯。 温馨提示:如果用户不慎删除了该驱动文件,不用担心,该驱动会在下次系统启动时重建。是一个删不掉的系统核心组件!实用程序结束该驱动,该驱动也会马上重新创建(只有粉碎文件才不能马上重建,但粉碎后,下次启动会重建)。 微软在Windows 2003 Server里引进了新的HTTP API和kernel mode driver Http.sys,目的是使基于Http服务的程序更有效率。这个改变的直接收益者就是IIS 6.0 和 asp.net. 其实在Windows XP安装SP2后,Http.sys已经出现在系统里了,但事实上,操作系统并没有真的使用这个内核级驱动,而XP上自带的IIS 5.1也没有使用HTTP API。 新的HTTP API里最核心的变化都封装在Http.sys这个kernel mode driver里了。在此之前,基于HTTP协议的程序都是在User mode下运行的,而且必须自己处理诸如软件中断、context switch、线程调度等等问题,并且往往无法自由接触系统资源。过去,HTTP服务器,如IIS, Apache等都是利用Winsock API来创建一个User mode下的network listener。Network listener通常独自(i.e.: per application or per thread basis)占用一个IP端口。通俗点说,就是在同一时间只有一个应用程序可以监听一个端口,这在有些时候是一个不太令人舒服的限制。 新的Http.sys带来的好处大致有如下一些: 1. 缓存 - 静态的内容现在被缓存于内核模式下,这使 服务响应速度更快 2. 记录 (Log)-IIS的log功能更快且标准化了 3. 带宽控制 - greater scalability control and throttling 4. 可靠性 - 所有的服务请求会在Http.sys里暂存入队列,而不是由服务程序本身来处理,这样,即使服务程序重启,尚未被处理的请求也不会丢失了 5. IP端口重用 - 现在,只要是通过Http.sys管理的端口(基本包括了那些著名的端口,比如80),都可以同时允许多个程序同时监听了。
公司的一个项目,环境为: .Net 4.0 + MVC3,部署在 Windows Server 2003R2 IIS6.0上面运行正常,迁移到新服务器 Windows Server 2008R2,部署在 IIS7.0上, 应用程序池中,托管管道模式中选中了“集成”模式,如下图:
1)首先新建一个应用程序池,名称任意,比如:nettest,托管管道模式先暂时设置为集成模式,等下面的一系列设置完成之后再设置成经典模式;
近半年以来,一直忙于我的第一本WCF专著《WCF技术剖析》的写作,一直无暇管理自己的Blog。到目前为止《WCF技术剖析(卷1)》的写作暂告一段落,初步预计于下个月由武汉博文视点出版。在《WCF技术剖析》写作期间,对WCF又有了新的感悟,为此以书名开始本人的第三个WCF系列。本系列的目的在于对《WCF技术剖析》的补充,会对书中的一些内容进行展开讲述,同时会囊括很多由于篇幅的原因忍痛割弃的内容。 1、通过一个ASP.NET程序模拟WCF基础架构 本系列的第一篇,我将会对WCF的基本架构作一个大致的讲解。不过,
根据微软的文档[1],iis开发功能分为两种,分别是IIS module和IIS handler,即IIS模块和IIS处理程序。
Web.config中httpModules和httpHandlers的相关配置说明
还是上次使用的Derwer.com,因为腾讯云提供了一年免费的TrustAsia DV SSL证书,由赛门铁克(Symantec)顶级根证书签发,亚洲诚信(TrustAsia)提供技术支持,据说价值1
配置Modules和Handlers的时候,根据不同IIS的版本和应用程序池中不同的托管管道模式,在Web.config中也有不同的配置方式。
I2S = Inter-IC Sound = Integrated Interchip Sound = IIS,是飞利浦在1986年定义(1996年修订)的数字音频传输标准,用于数字音频数据在系统内器件之间传输,例如编解码器CODEC、DSP、数字输入/输出接口、ADC、DAC和数字滤波器等。其与IIC无关联。
该文介绍了在Exchange 2007和Exchange 2010环境下,Active Sync与IIS7 Classic和Integrated模式的关系。文章首先介绍了Exchange 2007环境下,Active Sync与IIS7 Classic的关系,并总结为“Classic”模式。然后介绍了Exchange 2010环境下,Active Sync与IIS7 Integrated的关系,并总结为“Integrated”模式。最后,作者分享了在调试过程中发现的问题,并得出结论:针对Active Sync的http module,在Exchange 2007环境下,只能采用Native的方式开发,即C++开发;Exchange 2010即以上版本环境下,只能用Managed的方式开发,即C#方式。
前言 为什么我会起这样的一个标题,其实我原本只想了解asp.net的管道模型而已,但在查看资料的时候遇到不明白的地方又横向地查阅了其他相关的资料,而收获比当初预想的大了很多。 有本篇作基础,下面两篇就更好理解了: 理解并自定义HttpHandler 理解并自定义HttpModule 目录 一般不写目录,感觉这次要写的东西有些多就写一个清晰一下吧。 1.Asp.
开篇:ASP.Net是一项动态网页开发技术,在历史发展的长河中WebForm曾一时成为了ASP.Net的代名词,而ASP.Net MVC的出现让这项技术更加唤发朝气。但是,不管是ASP.Net WebForm还是ASP.Net MVC在请求处理机制上大部分都是相同的,只是在请求处理管道上的处理事件做了不同的操作,因此,本文标题不区分ASP.Net WebForm和ASP.Net MVC,但在后续的介绍中会区分开来介绍。此外,本文以IIS经典模式为主,不讨论集成模式(IIS7后加入了集成模式,不用加载外部的aspnet_isapi.dll组件)。
ASP.NET与IIS是紧密联系的,由于IIS6.0与IIS7.0的工作方式的不同,导致ASP.NET的工作原理也发生了相应的变化。 IIS6(IIS7的经典模式)与IIS7的集成模式的不同 IIS6
我经常听到 Microsoft 内部和外部的人将新的 IIS 7.0 Web 服务器称为 Microsoft 在过去几年中所进行的最重要的开发工作之一。考虑到 Microsoft 最近推出了一系列引人注意的技术,包括 Windows Vista™,这个评语具有重要意义! IIS 7.0 的发布时间正好是 Windows NT® 4.0 中第一个 IIS 版本发布十周年的纪念日。2001 年,在四个版本之后,IIS 5.0 成为了 Internet 上最流行的 Web 服务器,尽管几个月后它成了臭名昭著的
经过一段时间的学习,终于来到了部署服务这个环节,.NetCore 的部署方式非常的灵活多样,但是其万变不离其宗,所有的 Asp.NetCore 程序都基于端口的侦听,在部署的时候仅需要配置侦听地址、端口(一个或者多个)即可,在掌握好其托管部署原理后,剩下的就是对托管宿主的选择,通过本文,希望可以带给大家一种清晰的部署思路,选择最适合自己的服务部署方式。
我在 B 站的视频是基于.NET Core 2.2 提供的案例,在书籍中提供的是.NET Core 3.1 的案例。有人问,默认进程到底是进程外还是进程内。
本文章来总结一下关于apache伪静态与iis伪静态区别介绍,主要讲到了一些规则的问题与配置区别,以后大家就可以直接在iis伪静态转换apache,反之也一样。
如果Web服务器操作系统是Windowsserver2003,则IIS6.0进程模型是asp.net的默认选择。其名称明确之处,该模型需要IIS6.0、然后,在windows2003的服务器上,仍然可以让asp.net遵守IIS5.0进程模型的规则。可以通过修改machine.config文件中的<processModel>节,显示的启用该模型。
最近将原来的系统迁移到IIS7.5上了,发现AspNetUpload只能运行在"程序程序池"的"经典"模式之下,采用"集成"模式后,AspnetUpload.GetUploadFile始终为null,虽然改成经典不影响系统运行,但是这种模式就发挥不出IIS7的优势了,相当于以IIS6的兼容模式在运行,不知道作者会不会改进。 以下是MDSN上的关于应用程序池"集成"与"经典"模式的解释:(http://technet.microsoft.com/zh-cn/library/cc753449(WS.10).
ASP.NET Core 2.2 推出已经有一段时间了,其中有个新功能,能够使用新的AspNetCoreModuleV2并且在IIS上使用InProcess模式部署,以大幅提高性能。这几天Azure App Service终于完成了这个新版模块的部署,我第一时间将我的博客配置到新模块上,结果爆了。我们来看看原因和解决方式。
KestrelServer最大的优势体现在它的跨平台的能力,如果ASP.NET CORE应用只需要部署在Windows环境下,IIS也是不错的选择。ASP.NET CORE应用针对IIS具有两种部署模式,它们都依赖于一个IIS针对ASP.NET CORE Core的扩展模块。本文提供的示例演示已经同步到《ASP.NET Core 6框架揭秘-实例演示版》)
HTTP.SYS是TCP之上的一个网络驱动程序,因此,HTTP.SYS不再属于IIS(这里说的IIS都是IIS6.0+版本,下文如果不特殊指明,默认为IIS6.0+版本),它已经从IIS中独立了出来。 Http.Sys独立有以下几个优点:
ASP.NET5 beta8现已上都的NuGet作为一个工具升级到Visual Studio2015!此版本极大地扩展.NET核心对OS X和Linux所支持的范围。您现在可以使用网络,加密和全球化特点的跨平台!本新闻稿也包括ASP.NET5,DNX和Web工具的一些不错的改进。让我们来看看我们如何开始使用ASP.NET5beta8。 新功能 下面是一些在ASP.NET5 beta8新功能的摘要。对于什么是新的完整列表在此版本中,请参阅beta8发行说明。 更改IIS托管模式 我们已经取得了重大更新,以
我们知道 Asp.net Core 在 windows 服务器上部署的方案有 4 种之多。这些部署方案对性能的影响一直以来都是靠经验。比如如果是部署在 IIS 下,那么 In Process 会比 Out Process 快;如果是 Self Host 那么使用 HttpSys 服务器会比 Kestrel 快。 那么真实结果是否如我们想象的那样呢?接下来就让我们来做一次 benchmarks 吧。
A : 一个应用程序池可以包含多个应用程序,一个应用程序池创建一个W3WP.EXE进程.那么我们就不能简单的说一个进程池对应一个W3WP.EXE进程了!其实是多个应用进程池对应一个W3WP.EXE进程的.
在经典模式下,配置到System.web节点 在IIS7以上的集成模式下,要配置到<system.webServer>节点 否则会出现类似一下的错误: 📷 具体配置如下: 1 <configuration> 2 <system.webServer> 3 <modules> 4 <add name="AccessLogModule" type="Brightway.PAES.Core.Modules.Acc
运行powershell输入Get-WindowsFeature -Name NET-*, Web-* | where {$_.Name -notmatch "Web-Application-Proxy"} | Install-WindowsFeature这句命令就可以了
在2007年9月份,我曾经写了三篇详细介绍IIS架构和ASP.NET运行时管道的文章,深入介绍了IIS 5.x与IIS 6.0HTTP请求的监听与分发机制,以及ASP.NET运行时管道对HTTP请求的处理流程: [原创]ASP.NET Process Model之一:IIS 和 ASP.NET ISAPI [原创]ASP.NET Process Model之二:ASP.NET Http Runtime Pipeline - Part I [原创]ASP.NET Process Model之二:ASP.N
Windows版的PHP从版本5.2.1开始有Thread Safe(线程安全)和None Thread Safe(NTS,非线程安全)之分,这两者不同在于何处?到底应该用哪种?这里做一个简单的介绍。
最近在准备周末的评教活动,一直都在跟数据打交道,比如要先从学校的网站中把课程、老师、学生等信息导出来,核对整理后再导入咱们自己做的基础评教系统中。虽说是这么一个简单的流程,但真正做起来却出现了很多意想不到的问题,还好经过大家的艰苦奋战,现在已经基本上完成了。
IIS 8是和Windows Server 2012一起发布的。它带来多项有趣的特性,像对NUMA的支持、WebSockets、安全性改进和更好的web部署工具等。 IIS 8中一项有趣的改进就是NUMA感知的多核可伸缩性(NUMA-aware multi-core scalability): 有时提升内核的数量会导致性能的降低,因为内存同步的成本要比额外的核心在NUMA硬件上带来的好处还要高。IIS 8.0会在非统一内存访问(Non-Uniform-Memory-Access,NUMA)的硬件上智能地
最近在处理网站迁移的事情,涉及asp和.net网站,今天和伙伴们分享迁移asp网站遇到的坑和更简单便捷的部署方法。
PageAdmin的运行环境和目前权限配置完毕后,接下来就是给Iis添加站点,这样网站就可以正常运行了,下面小熊seo的小编就给大家讲解一下IIs站点的添加和管理。
序号 名称 说明 1 BeginRequest ASP.NET开始处理的第一个时间,表示处理的开始 2 AuthenticateRequest 验证请求,一般用来取得请求的用户信息 3 PostAuthenticateRequest 已经获取请求的用户信息 4 AuthorizeRequest 授权,一般用来检查用户的请求是否获得权限 5 PostAuthorizeRequest 用户请求已经得到授权 6 ResolveRequestCache 获取以前处理缓存的处理结果,如果以前缓存过,那么不必再进行请求
我们先来看看IIS 5.x是如何处理基于ASP.NET资源(比如.aspx,.asmx等)请求的,整个过程基本上可以通过图1体现。
前言 公司系统虽然配置有1台NLB后拖4台App Server最后搭一台强劲无比的DB Server,但每天下午4点左右总被投诉系统慢,报表下载不了等问题。究其原因,原来NLB采用锁定sessionId转发请求,而IIS的最大工作进程数却是1而已,只能通过增加工作线程的方式来提高并发量,但增加线程会消耗更多内存,当所占内存接近2G时应用48%左右的执行时间被分配给GC工作了,也就是说负载增大时上述硬件配置并然卵。那解决方案明显如下: 1.
ARR简单的说就是一个IIS7的负载均衡模块,可以一次管理多个IIS 6/7的服务器集群,规则基于URL,或者基于HOST NAME,或者基于HTTP HEADER。微软的Application Request Routing(ARR) 2.0使得Web管理员,虚拟主机提供商,内容分发网络(CDN)通过基于规则路由,机器名匹配,HTTP请求的负载均衡和分布式磁盘缓存来提高Web应用程序的的可扩展性和可靠性。有了ARR技术,管理员可以优化资源以及应用服务器的管理成本。 负载均衡可以有效的提高资源的利用率 使
刚看到有人说IIS7Express有下载,于是马上屁颠屁颠地跑去下载了一个,然后安装. 装完后发现,我擦,居然没有WIN7下的管理界面,汗一个,于是跑到安装目录下C:\Program Files\IIS Express>寻找之,发现iisexpress.exe 双击启动,发现自动绑定了8080端口,然后运行了一下appcmd.exe,按照命令行的提示,随便跑了几个网站起来。但是马上就遇到了这个问题: HTTP 错误 500.22 - Internal Server Error 检测到在集成的托管
前几天有一个朋友在MSN上问我“ASP.NET 从最初的接收到Http request到最终生成Response的整个流程到底是怎样的?”我觉得这个问题涉及到IIS和ASP.NETASP.NET Runtime的处理模型的问题,并不是三言两语就能说清楚的,所以决定写这样一篇介绍IIS和ASP.NET Runtime Process Model的文章,谈谈我对此的一个粗浅的认识,如果有什么不对的地方,希望大家及时指正。 这篇文章大体分为两个部分,第一部分我将谈谈IIS的两个不同的版本—IIS 5.x 和 II
IIS安装完毕后,默认有一个Default Web Site,为了方便大家熟练IIs的使用,我们直接删除然后重新建一个IIS站点,下面演示IIS如何新建站点运行PageAdmin建站系统。
之前说过用Apache和Nginx做代理来访问Tomcat中的项目. 现在因工作需要 只能用IIS作为Web服务器来把请求转发到Tomcat
64位的操作系统安装成功后,一般IIS也是默认的64位的解析,所以将程序放到64位操作系统上的时候,会出现IIS错误,解决方案也非常简单,将64位IIS停止,启动32位的就可以了。
iis是Internet Information Services的缩写,意为互联网信息服务,是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。
很多时候,我们在做PHP环境配置的时候,很多人都是直接去乱下载PHP版本的,但是他不清楚:从2000年10月20日发布的第一个Windows版的PHP3.0.17开始的都是线程安全的版本,直至5.2.1版本开始有Thread Safe(TS,线程安全)和None Thread Safe(NTS,非线程安全)之分。
通过《再谈IIS与ASP.NET管道》的介绍,相信读者已经对IIS和ASP.NET的请求处理管道有了一个大致的了解,在此基础上去理解基于IIS服务寄宿的实现机制就显得相对容易了。概括地说,基于IIS的服务寄宿依赖于两个重要的对象:System.ServiceModel.Activation.HttpModule和System. ServiceModel.Activation.HttpHandler。 一、通过HttpModule实现服务寄宿 在默认的情况下,基于IIS的服务寄宿是通过一个特殊的HttpMo
在2007年9月份,我曾经写了三篇详细介绍IIS架构和ASP.NET运行时管道的文章,深入介绍了IIS 5.x与IIS 6.0HTTP请求的监听与分发机制,以及ASP.NET运行时管道对HTTP请求的处理流程:
ASP.NET Core 从 2.2 版本起,在 IIS 下可以使用 InProcess 模式提高性能,国外大神 Rick Strahl 对此有一片详细的文章。3年过去了,现在 ASP.NET Core 已经到了 5.0 版本,不同服务器之间的性能有什么变化呢?我们来一起看一下吧。
领取专属 10元无门槛券
手把手带您无忧上云