当前位置:编程学习 > C#/ASP.NET >>

.net ObjectDisposedException: 无法访问已关闭的资源集。

   System.Resources.RuntimeResourceSet.GetObject(String key, Boolean ignoreCase, Boolean isString) +7670505
   System.Resources.RuntimeResourceSet.GetString(String key, Boolean ignoreCase) +17
   System.Resources.ResourceManager.GetString(String name, CultureInfo culture) +229
   System.Web.SR.GetString(String name) +28
   System.Web.UI.WebControls.LoginTemplate.CreateControls(LoginContainer loginContainer) +259
   System.Web.UI.WebControls.LoginTemplate.System.Web.UI.ITemplate.InstantiateIn(Control container) +45
   System.Web.UI.WebControls.Login.CreateChildControls() +139
   System.Web.UI.Control.EnsureChildControls() +87
   System.Web.UI.Control.PreRenderRecursiveInternal() +44
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean    includeStagesAfterAsyncPoint) +842

最近我给自己的网站单独新建了一个“应用程序池”,记录它的访问日志,以及占用内存、线程等情况。但还是未找到解决问题的方法。看上面的错误提示好像是系统启动时,搜集启动程序的相关资源时出错的。我采取的措施是在web.config配置文件中将“debug”设为false,注释掉<compile>。但问题依旧。

我的网站:AjaxControlToolKit,WebService,Linq to sql,Web Master。
BLL、DALFactory层,我全部采用静态方法。DAL层,每一个方法内部都实例化一个DataContext。

前台取数据,我是全部取出来,然后用Grid控件自带的分页程序实现。(这点我还没改进,但我的数据不是很多,网站刚部署上去也没多少数据,同样出现上面的错误)。


出现这种问题,大家都在自己的网站里运用了什么技术了?大家有遇到还是没遇到这种情况的,都写一下,帮忙找下问题。 --------------------编程问答-------------------- 部署后有问题?
调试的时候一切OK? --------------------编程问答-------------------- 你在本地 部署 测试看看
--------------------编程问答-------------------- 调试没问题,部署上去刚开始运行也没问题,就是运行一段时间就会出现这个问题 --------------------编程问答-------------------- 权限? --------------------编程问答-------------------- 设置IIS自动回收。。。。

某个时间段自动回收。 --------------------编程问答-------------------- 回收我做了,这只是一时的权益之计,有没有彻底解决这个问题方法呢? --------------------编程问答--------------------
引用 4 楼 strife 的回复:
权限?

权限应该没问题的,因为刚部署上去访问都没问题 --------------------编程问答-------------------- 无法访问已关闭的资源集

应该是资源Close了你还在访问,你如DataReader之类的。
所以你需要查看代码,加调试信息看哪块代码出的问题 --------------------编程问答-------------------- 是不是因为DataContext没有关闭的问题,我全部用的是linq to sql 来访问数据库的,我是这样用的DataContext的,       
 public JWGLDC()
            : base(ConfigurationManager.ConnectionStrings["JWGLConnectionString"].ConnectionString)
这是重写的DataContext,DAL层的类方法中是这样的,JWGLDC obj=new JWGLDC(); --------------------编程问答-------------------- 我以前用做过一个系统,用datareader,就是因为没有关闭数据访问当访问量增加时就会导致程序无法运行,所以每次使用完我都加了dr.close(),但DataContext是自己使用完就会关闭。

还是我使用的方法不对,谁有DataContext使用的成功案例,可否指导在下。 --------------------编程问答-------------------- 用静态dal?这个有问题,可能导致死锁,访问数据库的时候最好不要用静态dal或是在方法里加lock
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,