【问题标题】:IIS recycle causes error in static dataset accessIIS 回收导致静态数据集访问出错
【发布时间】:2011-03-24 10:05:14
【问题描述】:

在 asp.net 网络服务中,我有一个静态数据集,可在首次访问时加载(同步)数据。但是,当 IIS 回收应用程序池时,由于“集合已修改;枚举操作可能无法执行”而引发异常。

recycle会启动新进程,会创建新的静态数据集,旧worker进程中的请求不会访问新的静态数据集,怎么修改集合?还是有可能,旧的工作进程在请求完成之前立即终止?

还是我对回收过程的理解有误? IIS 不是启动新的工作进程,而是在同一个工作进程中启动新的 AppDomain?新旧 appDomain 共享同一个静态数据集?

【问题讨论】:

    标签: asp.net iis static dataset recycle


    【解决方案1】:

    事实证明,这个错误不是由回收过程引起的。在启动过程中,同步过早地将数据集返回给后面的请求/线程,而第一个请求/线程仍在填充它,导致“Collection was modified”的异常。

    像往常一样,我在抽屉里寻找钥匙,我相信它应该在里面,而钥匙完美地放在抽屉的桌子上。有时,我只是对实际看到的是头脑而不是眼睛感到震惊。在这种情况下,当我发布问题后,我意识到我看错了,仅仅是因为如果它是由回收过程引起的,我相信应该已经有人发布答案了。

    谢谢大家! 甄

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-03
      • 2013-01-26
      • 2021-02-26
      • 2014-06-01
      • 2017-08-07
      • 2012-10-30
      相关资源
      最近更新 更多