IIS应用程序池相关问题及连接池已满的解决方法

        关于应用程序池

在 IIS 6.0 中,引入了应用程序池,应用程序池是将一个或多个应用程序链接到一个或多个工作进程集合的配置。因为应用程序池中的应用程序与其他应用程序被工作进程边界分隔,所以某个应用程序池中的应用程序不会受到其他应用程序池中应用程序所产生的问题的影响。有了应用程序池,就可以使用被隔离的进程来运行 Web 应用程序。每个应用程序池在服务器上都具有唯一的凭据,因此您可以识别出哪些应用程序在执行哪些操作。如果一个应用程序失败,它不会影响在同时运行的其他应用程序。

   创建应用程序池 

  在IIS管理器中,打开本地计算机,右键单击“应用程序池”,选择新建“应用程序池” (必须在工作进程隔离模式下才能建立应用程序池) 。“应用程序池名称”框中,输入新的应用程序池名称。如果在“应用程序池 ID”框中出现的 ID (如:AppPool #1)不是您想要的,可进行重命名。如果您单击了“将现有应用程序池作为模板”,请在“应用程序池名称”框中右键单击想要用来作为模板的应用程序池。最后单击[确定]。

  指派应用程序池

  在 IIS 管理器中,右键单击您要为其指派应用程序池的应用程序,然后单击“属性”。 单击“主目录”选项卡,确认您正在指派的目录或虚拟目录的“应用程序名”是否已被填写。如果“应用程序名”框尚未被填写,请单击“创建”,然后输入名称。 “应用程序池”列表框中,选择您想要为其指派的应用程序池的名称。最后单击[确定]。

在ASP.NET应用程序开发中,会碰到这样的情况:“应用程序池已满,无法连接数据库”,这是因为有些数据库操作相关对象没有释放资源,没有被关闭掉。我们可以对应用程序池进行回收,停止再启动后,应用程序会恢复正常。

大家可以在编码时避免此类错误的发生,我们要养成好习惯,用过Reader一定要先Close然后Dispose,引用了Connection对象也一样要先Close然后Dispose。同时要注意,Dispose并不能关闭Reader,直接调用Dispose而不Close的话,数据库并不知道连接对象已经销毁,而数据库依然是连接状态,所以Dispose前一定要先Close

也可以用using运算符来引用相应对象,例如;

using(SqlConnection   conn   =   new   SqlConnection())
  {
  conn.Open();
  int   Voteid   =   0;
  string   sql   =   "select   top   1   *   from   votes_title   order   by   i_code   desc";   

  using(SqlCommand   comm   =   new   SqlCommand(sql,   conn))
  {
  using(SqlDataReader   dr   =   comm.ExecuteReader())
  {
  if   (dr.Read())
  {
  Voteid   =   Int32.Parse(dr["i_code"].ToString());
  Session["Votetitle"]   =   dr["c_name"].ToString();
  //dr.Close();
  BindGridshow(Voteid);
  VoteBtn.Visible   =   true;   

  }
  //dr.Close();
  }
  }
  }
时间: 2024-10-10 10:49:25

IIS应用程序池相关问题及连接池已满的解决方法的相关文章

连接池已满,超过最大连接数 解决方案

昨天遇到一个案例,一个同事在通过其中一台数据库客户端(暂且名为B机器)连接访问 服务器上的DB ,所有对象(表,视图,存储过程)都打不开,提示连接池已满,超过最大连接数.这个错误比较奇怪,难道同时有32767个并发连接,于是远程登录服务器,打开数据库,发现打开表,存储过程 都没问题.于是判断是不是他们程序中没有显示释放连接,查后发现不是程序的问题,用下面方法查看后发现有389个数据库客户端连接,程序连接才100多个,很奇怪为什么会有300多个数据库客户端连接,再查这些连接的IP和机器名发现来自B

【第一个项目】MySQL第二天早上第一次连接超时报错,解决方法com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:

MySQL第二天早上第一次连接超时报错,解决方法com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure Last packet sent to the server was 0 ms ago 最近碰到一个mysql5

手机连接不上笔记本热点解决方法

近日为了解决手机连接不上笔记本热点的问题,真可谓是大费周章,原本想先大吐苦水,可是时间关系还是直奔着主题去吧.描述一下问题先,手机上个月还是能好好的连上笔记本电脑热点的,说明一下热点是用win7笔记本命令行设置的,最近莫名其妙的就连不上了,在网上找了各种各样的方法都没有得到解决.最后把热点disallow,再重新设置一次就把问题解决了.初步定义问题的原因为keyUsage没有设置导致密码过期,在设置热点:netsh wlan set hostednetwork mode=allow ssid=w

Adobe Dreamweaver CC MySQL连接 报404错误的解决方法

Adobe Dreamweaver CC MySQL连接时总报404报错,并给以下两个提示: 1) 在该服务器机器上没有测试服务器运行. 2) 为该站点指定的测试服务器没有映射到http://localhost/_mmServerScripts/MMHTTPDB.phpURL.请确认url前缀映射到了你站点的根上. 网上翻了一堆网站,折腾了两三天,发现可以按如下方法解决: 1)首先要在http://localhost/security/index.php配置mysql的访问密码(我用的是XAMP

CentOS 6.3 SSH连接时很慢的解决方法

SSH的配置文件,默认开启了DNS反向解析,这使得处于同一个局域网下的终端,在SSH到服务器的时候异常缓慢,如果从是外网SSH到服务器的话,速度则是正常的.我们只需要关闭DNS反向解析即可. 修改/etc/ssh/sshd_config文件 将 #UseDNS YES 修改为 UseDNS no 重启SSHD服务后问题解决. CentOS 6.3 SSH连接时很慢的解决方法

xp 中的IIS安装成功之后,访问网页显示没有权限访问解决方法

在做xp的IIS发布网站时遇到一个问题就是当你访问网站的时候,显示没有权限访问网站,但是我已经开启了匿名访问网站了,怎么还没有权限访问呢?后来经过上网搜资料解决,当时很多网上都说没打开匿名访问,当时我就仔细查看了一下,我又点开网站的目录安全性,查看匿名访问是否被选中,当时我点进去之后发现匿名访问已经被选中了啊.为什么还不能上呢.后来我才发现原来是因为匿名访问的用户错了,一开始安装的IIS的匿名访问用户是7BKSBRPUUJY1Z9N\IWAM_7BKSBRPUUJY1Z9N,主要是IWAM账号是

Android开发调试无法连接到夜神模拟器的解决方法

Android开发调试无法连接到夜神模拟器的解决方法: 一般原因是adb的版本不一致造成的!!!!!换成一样的就可以了. 在网上看到的方法,特记录下来: 1.任务管理器里看下,adb.exe以及nox_adb.exe这2个进程有没有在运行?有的话就结束掉. 2.找到开发环境的SDK的目录和夜神模拟器的目录,将SDK目录下的adb.exe文件,复制到夜神模拟器的目录下,因为夜神模拟器目录下原本的adb文件名字叫做nox_adb.exe,因此复制过去之后也得改名为nox_adb.exe. 3.这样开

mysql 8创建远程访问用户以及连接mysql速度慢的解决方法

mysql 8创建远程访问用户 [[email protected] /]# mysql -u root -p  #登录服务器数据库 Enter password:123xxx >user mysql; >CREATE USER 'rtuser'@'%' IDENTIFIED BY '[email protected]#'; >ALTER USER 'rtuser'@'%' IDENTIFIED WITH mysql_native_password BY '[email protecte

Tomcat7和mysql连接池dbcp方式的配置方法和测试

一.设计测试用的数据库 1.新建数据库 create database testmysql; 2.新建一个用户信息数据表 create table test( username varchar(20) primary key, password varchar(20)); 3.给新表插入数据信息 insert into test values('keivn','123456'); 二. 设计局部数据源和连接池 1.在webapps目录中新建test目录,然后在test中分别新建WEB-INF和M