IIS中的应用程序池重要性!

刚刚工作时候碰到过这么一个例子!

一个申报系统,用ASP.NET开发的,然后每当申报高峰的时候,都会出现错误页面

统计单位就往我们单位打电话!

根据同事的以前的经验,登录服务器把IIS重启下就可以了

我上去看了看好啊,一台老爷级别的服务器上20多个网站 狂晕!

过了段时间 那边的申报单位换人了。算是一个比较会嫌弃或者说抱怨的人把

真的不想理他,但是没办法毕竟网站是我们做的啊。现在又我接手

我分析了下,最大可能就是连接每关闭!

所以打算分析下代码

发现代码有两个文件夹,假设A和B吧

A文件夹还是有源码的(以前的一个技术牛人写的)

B文件夹据说是一个实习生写的。连.CS文件也没有了!啊!!!

如果改代码说实话,我懒得改 也改不了!

然后百度了圈,发现可能是应用程序池的问题!结果还真是应用程序池 。(肯定是每关闭导致应用程序池过大)

所以今天讲讲啥是应用程序池

首先我看了看服务器的进程,里面有很多W3WP.EXE 进程! 而且消耗内存很大

我通过PID找到相对应那个网站的进程!更加确定是因为消耗导致卡住的。

在默认情况下apppool设置为每1740分钟(29小时)回收一次,回收时,appPool中的IIS进程会停止,然后用重叠的方式重启。所以不会有请求丢失!回收有助于预防因内存泄漏或其他资源泄漏,程序BUG导致的中断!

他默认只有一个DefaultAPPpool

我当时的想法是,每天早上4点,通过计划任务自动重启下IIS(毕竟那时候没人访问)

但是发现不行,到了12点左右还是会卡死!下午又能接到那个催命一样的电话了

那我们怎么办呢?

后来我通过查阅资料发现,在同一个AppPool内运行的网站会共享这些进程。

简单的说,如果某个网站导致因为程序BUG(比如说datareader未关闭什么的)会导致所有网站的出现卡死(这种情况我们单位遇到过!只有重启服务器,或者IIS

经过沟通,我发现有些页面用着用着就会很卡,我发现基本上是那个实习生写的文件夹里头的(这边这么说没有看不起实习生的意思,实事求是罢了,再者我一开始进入单位也是实习生,而且我也犯过类似的错误!后来问了以前的几个学长搞定程序连接的问题)

后来我想了想,我能不能多创建几个应用程序池,然后把网站独立开来

添加额外应用程序池,就是为了通过应用程序隔离AppPool,防止因为BUG影响其他网站!(在IIS左边有个应用程序池,你在那儿新建就是了,然后把网站或者文件夹的应用程序池指向你新建的那个应用程序池)

于是我多创建了两个个应用程序池。一个分配给这个网站的A目录一个分配给B目录!然后IIS还是照样计划重启。结果就没卡住过

事情发生了很早,一直想总结,但是没有机会,这几天看资料又看到这块所以就写下,一方面加深印象,第二方面希望对大家有帮助。

by  老陈

2012/3/9

时间: 2024-10-29 19:11:48

IIS中的应用程序池重要性!的相关文章

IIS中查看W3P.exe进程对应的应用程序池的方法

对于IIS6可以运行 iisapp -a来显示应用程序池的性能列表. iisapp.vbs它是一个脚本程序,在安装2003时需要SP1才有 而IIS7可以直接用它的外壳命令 C:"Windows"System32"inetsrv>appcmd.exe list wp来显示 有时候因为服务器安全问题不能直接运行,我们可以通过下面的方法解决下. IIS7中查看w3wp进程 在IIS中可以用iisapp命令查看到所有w3wp进程的情况,但IIS7中微软改变了做法,改用了App

在IIS中部署Asp.net Mvc

概述: 最近在做一个MVC 3的项目,在部署服务器时破费了一番功夫,特将过程整理下来,希望可以帮到大家! 本文主要介绍在IIS5.1.IIS6.0.IIS7.5中安装配置MVC 3的具体办法! 正文: IIS5.1 1. 安装Microsoft .net FrameWork 4.0安装包; 2. 安装ASP.NET MVC 3; 3. 在IIS中发布网站,创建虚拟目录,ASP.NET版本选择4.0.30196: 4. 添加MVC的解析: 右击IIS中的虚拟目录选择“属性”-“虚拟目录”-“配置”

visual stuidio2010 在iis中调试。

1 你的电脑装好IIS. 这是必须的. 2.更改.NET Framework 版本为你的项目所用的版本. 应用程序池对应的.NET Framework 版本也都要对应. 3将你电脑的默认网站目录定位到你的项目的web项目目录,访问你的本地网站是否正在显示.http://localhost 如果不能正常显示.第一 检查一下ASP.NET 是否安装.安装完了还要注意 注册ASP.NET  .注册ASP.NET 要切换到administrator用户下. 如果没有注册ASP.NET,打开网站会提示  

怎样在win7 IIS中部署网站?

IIS作为微软web服务器的平台,可以轻松的部署网站,让网站轻而易举的搭建成功,那么如何在IIS中部署一个网站呢,下面就跟小编一起学习一下吧. 第一步:发布IIS文件 1:发布你所要在IIS上部署的网站,在Microsoft Visual Studio中的web项目点击右键,选择发布. 2:选择文件系统,然后选择保存位置,就可以发布成部署到IIS的文件. 第二步:IIS安装(启用Windows7系统自带IIS) 1:从电脑桌面单击"开始(Start)"—单击"控制面板(Con

WCF服务发布到IIS中去(VS2013+win7系统)

第一个WCF程序 1. 新建立空白解决方案,并在解决方案中新建项目,项目类型为:WCF服务应用程序.建立完成后如下图所示: 2.删除系统生成的两个文件IService1.cs与Service1.svc. 3.添加自定义的WCF[服务文件]User.svc,此时vs2010会自动生成WCF接口文件IUser.cs,我们在IUser中定义WCF方法ShowName,在User.svc.cs对该接口的方法进行实现. 代码如下: using System.ServiceModel; namespace

WCF分布式4:客户端访问寄宿在IIS中的WCF服务

部署过程比较简单,新建一个站点,指向服务的物理路径,设置一个端口.即可. 新建的站点对应一个应用程序池,设置应用程序池中的.NET版本为4.0 写一个测试客户端,访问IIS中的WCF服务,可能会出现, Method Not Found 解决措施 第一步,上图中的 windows Communication Foundation HTTP Activation 打上勾 第二步,如果出现 未能从程序集"System.ServiceModel, Version=3.0.0.0, Culture=neu

扒取网站前端所有的东西,偷取前端效果。放iis中出无法写入webconfig错。

扒网站前端,自己大多数只做后端. 火狐安装ScrapBook插件,在FIREFOX上ALT键,保存页面,ALT+K在侧栏显示,导出文件.一个页面的所有文件(css js)都会打包生成新的文件和一个index. 一个网站,多个页面都可以这样扒取.然后一个页面放一个文件夹.多个文件夹放在一起,放进vs或iis中. 再自己改jquery和改前端和后端交互的事件等. 要设置文件夹权限,否则报错,无法“读取webconfig”文件的错误. 打开iis管理器,在“网站”右击,添加网站, 网站名,随便起.内容

MVC 3.0 在各个版本IIS中的部署

概述: 最近在做一个MVC 3的项目,在部署服务器时破费了一番功夫,特将过程整理下来,希望可以帮到大家! 本文主要介绍在IIS5.1.IIS6.0.IIS7.5中安装配置MVC 3的具体办法! 正文: IIS5.1 1. 安装Microsoft .net FrameWork 4.0安装包; 2. 安装ASP.NET MVC 3; 3. 在IIS中发布网站,创建虚拟目录,ASP.NET版本选择4.0.30196: 4. 添加MVC的解析: 右击IIS中的虚拟目录选择“属性”-“虚拟目录”-“配置”

在iis中调试asp.net程序

第一步,在iis中新建一个网站,名称为Langben,“物理路径”选择你的程序的根目录,端口你可以随便设置一个数,我这里设置为8888(后面要用到哦). 第二步,应用程序池设置一下 第三步,接下来,在你要调试的网站或者项目上右击,选择“属性”. 第四步,打开Web选项卡,服务器选择“本地IIS”,还记住第一步建网站的那个ip地址和端口吗?对,“项目URL”就是你第一步建的网站的url,图片中的localhost表示本地服务器的意思. 第五步,直接按F5试试吧,是不是So easy! 再也不用担心