【问题标题】:Hashtable insert failed. Load factor too high. - ASP.NET 2.0哈希表插入失败。负载系数太高。 - ASP.NET 2.0
【发布时间】:2010-10-05 01:19:10
【问题描述】:

我在尝试登录安全目录时收到以下错误。据我所知,没有使用大型哈希表。用户登录信息位于 web.config 文件中。请注意,这发生在 .NET 2.0 中。我已经搜索并找到了在 .net 1.0 或 1.1 环境中发生的引用,但我还没有找到在 2.0+ 中发生的解决方案。

我需要弄清楚为什么会发生这种情况,以便将来避免它。我可以重置服务器,也许它会消失,但我更愿意了解它发生的原因。

这是整个错误页面,如图所示:

“/”应用程序中的服务器错误。

哈希表插入失败。负载系数 太高了。

描述:未处理的异常 在执行过程中发生 当前的网络请求。请查看 堆栈跟踪以获取有关的更多信息 错误及其起源 代码。

异常详情: System.InvalidOperationException: 哈希表插入失败。负载系数 太高了。

来源错误:

产生了一个未处理的异常 在当前执行期间 网络请求。有关的信息 异常的起源和位置 可以使用异常识别 下面的堆栈跟踪。

堆栈跟踪:

[InvalidOperationException:哈希表 插入失败。负载系数太高。] System.Collections.Hashtable.Insert(对象 键,对象 nvalue,布尔添加) +2903977 System.Collections.Hashtable.set_Item(对象 键,对象值)+11
System.ComponentModel.ReflectTypeDescriptionProvider.ReflectGetAttributes(类型 类型)+323
System.ComponentModel.ReflectedTypeData.GetAttributes() +36 System.ComponentModel.DefaultTypeDescriptor.System.ComponentModel.ICustomTypeDescriptor.GetAttributes() +50 System.ComponentModel.TypeDescriptor.GetAttributes(类型 组件类型)+26
System.Web.UI.ThemeableAttribute.IsTypeThemeable(类型 类型)+98
System.Web.UI.Control.ApplySkin(页面 页)+49
System.Web.UI.Control.InitRecursive(控制 命名容器)+2120286
System.Web.UI.Control.InitRecursive(控制 命名容器)+198
System.Web.UI.Control.InitRecursive(控制 命名容器)+198
System.Web.UI.Control.InitRecursive(控制 命名容器)+198
System.Web.UI.Page.ProcessRequestMain(布尔值 includeStagesBeforeAsyncPoint,布尔值 includeStagesAfterAsyncPoint) +834

版本信息:Microsoft .NET 框架版本:2.0.50727.1433; ASP.NET 版本:2.0.50727.1433

【问题讨论】:

  • 你知道这是怎么发生的吗?我们的网站刚刚受到这个打击,但我不知道如何重现它。如果它可以被复制,那么我会知道下面描述的修补程序是否真的修复了它。谢谢。

标签: asp.net exception .net-2.0


【解决方案1】:

以下修补程序解决了这个(和其他)问题。

http://support.microsoft.com/?id=927579

(信息来源于here

【讨论】:

  • 我在搜索中找到了那个,但不确定它是否是正确的修复。您是否遇到此问题并使用此修补程序?
  • 我以前遇到过这个。我找到了相同的链接,它似乎解决了它。至少,它再也没有回来......这不一定与解决它一样:) YMMV
  • 感谢更新!它似乎只影响需要会员资格提供者登录的管理页面。主要公共页面不受影响...
  • 如何获得修复?我是否必须开始付费支持票才能获取文件?
  • 没有。你可以要求它。据我所知,它应该是免费的修补程序。我必须通过我所在的“渠道”才能获得它,所以我不知道我们的服务器支持团队是否必须提出事件。我只是告诉他们如何解决它:)
【解决方案2】:

在 .NET 4.0 中,同样的错误再次出现;它已在 KB:2576011 的修补程序中修复。它现在可能会汇总到标准更新中(尚未检查),但是:如果需要,可以从 MS 获得 4.0 的修补程序。

【讨论】:

  • 我刚刚在 Microsoft Dynamics CRM 电子邮件路由器中遇到了这个问题,它必须在内部使用跨多个线程的哈希表来处理邮件。
【解决方案3】:

我遇到过类似的问题,在此概述: HashTable Insert Failed. Load Factor Too High. .NET 2.0 SP2

但是,927579 修补程序包含在 .NET 2.0 SP1 (http://support.microsoft.com/kb/945757) 中,我们仍然遇到与上面列出的相同的问题。希望较新的修补程序 (http://code.msdn.microsoft.com/KB968432) 能够一劳永逸地解决它。

我不能保证它,因为我还没有机会在我们的服务器上安装它,并且考虑到我们在上次之后没有再次出现问题,那么即使它已经安装我也不会'不能说它是否有效!

【讨论】:

  • 968432 杀死了我们的 .net 安装,我们最终不得不完全重新安装 .net。这并不是说它不适用于其他人,但请注意,它可能需要 5 分钟以上的支持!
猜你喜欢
  • 2010-12-25
  • 1970-01-01
  • 2011-01-10
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 2013-04-03
  • 2015-06-25
  • 2017-03-28
相关资源
最近更新 更多