Khắc phục: InvalidOperationException lỗi khi một ứng dụng multithreaded thông lượng cao trong Khuôn khổ .NET 4

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch thuật của Microsoft và có thể được Cộng đồng Microsoft chỉnh sửa lại thông qua công nghệ CTF thay vì một biên dịch viên chuyên nghiệp. Microsoft cung cấp các bài viết được cả biên dịch viên và phần mềm dịch thuật thực hiện và cộng đồng chỉnh sửa lại để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng nhiều ngôn ngữ Tuy nhiên, bài viết do máy dịch hoặc thậm chí cộng đồng chỉnh sửa sau không phải lúc nào cũng hoàn hảo. Các bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này: 2576011
Triệu chứng
Xem xét tình huống sau:
  • Bạn chạy Microsoft multithread ứng dụng Khuôn khổ .NET 4 là thông qua hashigh.
  • Ứng dụng gọi phương phápSystem.ComponentModel.TypeDescriptor.GetProvider.
Trong trường hợp này, một ngoại lệ System.InvalidOperationException xảy ra và bạn nhận được thông báo lỗi sau:
Chèn Hashtable không thành công. Nạp quá nhiều yếu tố. Nguyên nhân phổ biến nhất là nhiều chủ đề viết Hashtable vào cùng một lúc.

Ví dụ, bạn chạy một ứng dụng ASP.NET ora bản ghi Dịch vụ Web và các ứng dụng hoặc bản ghi Dịch vụ Web gọi phương phápSystem.ComponentModel.TypeDescriptor.GetProvider .

Lưu ý: Khi sự cố này xảy ra, ngăn xếp cuộc gọi giống như sau:
tại System.Collections.Hashtable.Insert (đối tượng chính, đối tượng nvalue, Boolean thêm)
tại System.ComponentModel.TypeDescriptor.NodeFor (gõ gõ, Boolean createDelegator)
tại System.ComponentModel.TypeDescriptor.GetProvider (loại loại)
tại System.ComponentModel.DataAnnotations.AssociatedMetadataTypeTypeDescriptionProvider..ctor (loại loại)
tại System.Web.Mvc.ModelBinderDictionary.GetBinder (loại modelType, IModelBinder fallbackBinder)
tại System.Web.Mvc.ControllerActionInvoker.GetParameterValue (ControllerContext controllerContext, ParameterDescriptor parameterDescriptor)
tại System.Web.Mvc.ControllerActionInvoker.GetParameterValues (ControllerContext controllerContext, ActionDescriptor actionDescriptor)
tại System.Web.Mvc.ControllerActionInvoker.InvokeAction (ControllerContext controllerContext, Chuỗi actionName)
tại System.Web.Mvc.Controller.ExecuteCore()
tại System.Web.Mvc.ControllerBase.Execute (RequestContext requestContext)
tại System.Web.Mvc.MvcHandler. <> </>c__DisplayClass6. <> </>c__DisplayClassb. <BeginProcessRequest>b__5()
tại System.Web.Mvc.Async.AsyncResultWrapper. <> </>c__DisplayClass1. <MakeVoidDelegate>b__0()
tại System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
tại System.Web.HttpApplication.ExecuteStep (IExecutionStep bước, Boolean & completedSynchronously)</MakeVoidDelegate></BeginProcessRequest>
Nguyên nhân
Sự cố này xảy ra do HashTablenội bộ đối tượng được truy cập bởi nhiều người viết ứng dụng multithread.
Giải pháp

Thông tin về cập nhật nóng

Microsoft hiện đã cung cấp bản cập nhật nóng được hỗ trợ. Tuy nhiên, nó là nhằm sửa chỉ vấn đề bài viết này mô tả. Áp dụng cho các hệ thống đang gặp sự cố cụ thể này.

Để khắc phục sự cố này, hãy liên hệ với bản ghi dịch vụ hỗ trợ khách hàng Microsoft để lấy hotfix. Để biết danh sách đầy đủ số điện thoại bản ghi dịch vụ hỗ trợ khách hàng của Microsoft và thông tin về chi phí hỗ trợ, ghé thăm website sau của Microsoft:Lưu ý: Trong trường hợp đặc biệt, chi phí thường phát sinh cho cuộc gọi hỗ trợ có thể bị hủy bỏ nếu chuyên viên hỗ trợ Microsoft xác định rằng một Cập Nhật cụ thể sẽ giải quyết vấn đề của bạn. Chi phí hỗ trợ thông thường sẽ áp dụng cho các vấn đề không phù hợp với bản Cập Nhật cụ thể trong câu hỏi và câu hỏi hỗ trợ bổ sung.

Điều kiện tiên quyết

Để áp dụng hotfix này, bạn phải cài đặt chuyên biệt Khuôn khổ .NET 4.

Yêu cầu khởi động lại

Bạn phải khởi động lại máy tính sau khi bạn áp dụng hotfix này nếu tệp bị ảnh hưởng đang được sử dụng.

Thông tin về tệp

Phiên bản toàn cầu của hotfix này có các thuộc tính tệp (hoặc thuộc tính tệp mới hơn) được liệt kê trong bảng sau. Ngày và giờ của các tệp này được liệt kê theo Giờ Quốc tế Phối hợp (UTC). Khi bạn xem thông tin về tệp, ngày và giờ được chuyển đổi thành giờ địa phương. Để tìm sự khác nhau giữa UTC và giờ địa phương, sử dụng tab múi thời gian trong mục Ngày và Giờ trong Pa-nen điều khiển.

Dành cho tất cả phiên bản dựa trên x86 của Khuôn khổ .NET 4 cho Windows Server 2003, Windows XP, cho Windows Vista, Windows Server 2008 hoặc cho Windows 7

Tên tệpPhiên bản tệpKích thước tệpNgàyGiờNền tảng
System.dll4.0.30319.5083,511,11231 tháng 8 năm 201105:39x86


Đối với tất cả phiên bản dựa trên x64 của Khuôn khổ .NET 4 cho Windows Server 2003, Windows XP, dành cho Windows Vista, Windows Server 2008, dành cho Windows 7 hoặc Windows Server 2008 R2

Tên tệpPhiên bản tệpKích thước tệpNgàyGiờNền tảng
System.dll4.0.30319.5083,511,11231 tháng 8 năm 201105:39x64


Cho tất cả các hỗ trợ IA-64 – dựa trên phiên bản Khuôn khổ .NET 4 cho Windows Server 2003, Windows Server 2008 hoặc Windows Server 2008 R2

Tên tệpPhiên bản tệpKích thước tệpNgàyGiờNền tảng
System.dll4.0.30319.5083,511,11231 tháng 8 năm 201105:39IA-64


Tình trạng
Microsoft đã xác nhận rằng đây là sự cố trong sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".

Cảnh báo: Bài viết này được dịch tự động

Thuộc tính

ID Bài viết: 2576011 - Xem lại Lần cuối: 10/02/2016 07:56:00 - Bản sửa đổi: 2.0

Microsoft .NET Framework 4.0

  • kbqfe kbhotfixserver kbfix kbexpertiseadvanced kbsurveynew kbmt KB2576011 KbMtvi
Phản hồi