|
|
1
4
是的,回收应用程序池会终止并重新启动负责运行应用程序的IIS进程。此时将释放所有资源,这仅仅是因为进程正在退出。 如果进程从未重新启动,只是泄漏句柄,垃圾收集器最终会将它们清理干净。但是,在发生这种情况之前,很可能会耗尽任何资源泄漏的句柄。这就是为什么在这些对象上调用Dispose()很重要(最好是通过“使用”模式),以便在应用程序处理完这些对象后立即释放资源,而不是在垃圾回收器处理完这些对象后立即释放资源。 |
|
|
2
1
连接池是数据库连接的缓存。应用程序池是一个(或多个)工作进程。因此,当您关闭应用程序池时,您将关闭工作进程并启动新的工作进程;这将导致池被破坏,连接池中的所有连接都被关闭。 如果不在连接上调用close或dispose并依赖垃圾收集器,则连接可能会返回池,也可能不会返回池。我认为只有当连接仍然有效并且达到最大池大小时,才会将其添加回池。正如您可能知道的,您不应该依赖垃圾收集器来完成这项工作。确保释放连接的一个简单方法是使用将在代码块末尾自动调用Dispose的using语句。 在ADO.NET 2.0中,有一些新方法可以以编程方式管理池:ClearAllPools和ClearPool。在修复所有数据访问代码之前,这可能会帮助您解决问题。 |
|
|
nick_n_a · 如何获取意外sharepoint错误的详细信息? 9 年前 |
|
|
Farhan Aslam · 确定IIS网站的类型 11 年前 |
|
|
Norseman · Url重写-查询字符串分析 13 年前 |
|
|
Matthew Sharpe · 服务器。传输丢失的邮件数据 13 年前 |
|
|
jd182 · 重复的“index.php”使用ISAPI在IIS上重写URL 14 年前 |