Triệu chứng
Bạn có một ứng dụng gọi phương pháp GetOptionalCustomModifiers hoặc phương pháp GetRequiredCustomModifiers trên đối tượng ParameterInfo của một giao diện chung. Khi bạn chạy ứng dụng này trên máy tính đã cài đặt Microsoft .NET Framework 3.5 Gói dịch vụ 1 (SP1), một ngoại lệ sẽ được trả về và bạn nhận được thông báo lỗi tương tự như sau:
Lưu ý
Một ngoại lệ chưa được xử lý của loại 'System.ExecutionEngineException' đã xảy ra trong mscorlib.dll
Ngoài ra, ID sự kiện 1023 được ghi nhật ký trong nhật ký Ứng dụng. Sự kiện này giống như sau:ID sự kiện 1000 cũng có thể được ghi nhật ký trong nhật ký Ứng dụng. Sự kiện này sẽ diễn ra như sau:
Nguyên nhân
Sự cố này xảy ra do sự cố trong .NET Framework 3.5 SP1.
Giải pháp
Thông tin hotfix
Một hotfix được hỗ trợ luôn sẵn dùng từ Microsoft. Tuy nhiên, hotfix này chỉ nhằm mục đích khắc phục sự cố được mô tả trong bài viết này. Chỉ áp dụng hotfix này cho các hệ thống đang gặp phải sự cố cụ thể này. Hotfix này có thể được kiểm tra bổ sung. Do đó, nếu bạn không bị ảnh hưởng nghiêm trọng bởi sự cố này, chúng tôi khuyên bạn nên đợi bản cập nhật phần mềm tiếp theo có chứa hotfix này.
Để tải xuống hotfix này từ Bộ sưu tập Mã MSDN, hãy truy cập trang Web sau của Microsoft:
http://code.msdn.microsoft.com/KB957541
Lưu ý: Bộ sưu tập Mã MSDN hiển thị các ngôn ngữ mà hotfix khả dụng. Nếu bạn không thấy ngôn ngữ của mình được liệt kê, đó là vì trang tài nguyên Bộ sưu tập Mã không có sẵn cho ngôn ngữ đó.
Lưu ý Nếu phát sinh sự cố bổ sung hoặc nếu cần khắc phục sự cố thì có thể bạn phải tạo yêu cầu dịch vụ riêng. Chi phí hỗ trợ thông thường sẽ áp dụng đối với các vấn đề và câu hỏi hỗ trợ bổ sung không phù hợp với hotfix cụ thể này. Để biết danh sách đầy đủ các số điện thoại hỗ trợ và dịch vụ khách hàng của Microsoft hoặc để tạo một yêu cầu dịch vụ riêng biệt, hãy truy cập trang web sau của Microsoft:
http://support.microsoft.com/contactus/?ws=support Lưu ý: Nếu bạn phải có hotfix này cho Windows Server 2008 hoặc Windows Vista Gói dịch vụ 1, hãy tải hotfix 957542 thay vào đó. Hotfix 957542 giải quyết sự cố này và có sẵn cho các hệ điều hành đó. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:
957542 KHẮC PHỤC: Trên máy tính chạy .NET Framework 3.5 Gói dịch vụ 1, trình biên dịch JIT và Trình tạo Hình ảnh Riêng (Ngen.exe) sử dụng tệp Mscorjit.dll có thể tạo mã không chính xác
Điều kiện tiên quyết
Bạn phải cài đặt .NET Framework 3.5 SP1 để áp dụng hotfix này.
Yêu cầu khởi động lại
Bạn có thể phải khởi động lại máy tính nếu bất kỳ tệp nào được cập nhật đang được sử dụng.
Thông tin thay thế hotfix
Hotfix này không thay thế bất kỳ hotfix nào khác.
Thông tin tệp
Phiên bản tiếng Anh 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ờ Chuẩn Quốc tế (UTC). Khi bạn xem thông tin về tệp, tệp đó đã được chuyển đổi thành giờ địa phương. Để xem sự khác biệt giữa UTC và giờ địa phương, hãy sử dụng tab Múi giờ trong mục Ngày và giờ trong Panel điều khiển.
Các phiên bản Windows 2000, Windows XP và Windows Server 2003, x86
| Tên tệp | Phiên bản tệp | Kích thước tệp | Ngày | Thời gian |
|---|---|---|---|---|
| Mscordacwks.dll | 2.0.50727.3068 | 992,264 | Ngày 16 tháng 9 năm 2008 | 13:13 |
| Mscorlib.dll | 2.0.50727.3068 | 4,546,560 | Ngày 16 tháng 9 năm 2008 | 13:13 |
| Mscorwks.dll | 2.0.50727.3068 | 5,815,808 | Ngày 16 tháng 9 năm 2008 | 13:13 |
Các phiên bản Windows 2000, Windows XP và Windows Server 2003, x64
| Tên tệp | Phiên bản tệp | Kích thước tệp | Ngày | Thời gian | Nền tảng |
|---|---|---|---|---|---|
| Mscordacwks.dll | 2.0.50727.3068 | 992,264 | Ngày 16 tháng 9 năm 2008 | 13:13 | x86 |
| Mscorlib.dll | 2.0.50727.3068 | 4,546,560 | Ngày 16 tháng 9 năm 2008 | 13:13 | x86 |
| Mscorwks.dll | 2.0.50727.3068 | 5,815,808 | Ngày 16 tháng 9 năm 2008 | 13:13 | x86 |
| Mscordacwks.dll | 2.0.50727.3068 | 1,767,944 | Ngày 16 tháng 9 năm 2008 | 10:33 | x64 |
| Mscorlib.dll | 2.0.50727.3068 | 4,562,944 | Ngày 16 tháng 9 năm 2008 | 10:33 | x64 |
| Mscorwks.dll | 2.0.50727.3068 | 10,079,744 | Ngày 16 tháng 9 năm 2008 | 10:33 | x64 |
Windows 2000, Windows XP và Windows Server 2003, các phiên bản IA-64
| Tên tệp | Phiên bản tệp | Kích thước tệp | Ngày | Thời gian | Nền tảng |
|---|---|---|---|---|---|
| Mscordacwks.dll | 2.0.50727.3068 | 992,264 | Ngày 16 tháng 9 năm 2008 | 13:13 | x86 |
| Mscorlib.dll | 2.0.50727.3068 | 4,546,560 | Ngày 16 tháng 9 năm 2008 | 13:13 | x86 |
| Mscorwks.dll | 2.0.50727.3068 | 5,815,808 | Ngày 16 tháng 9 năm 2008 | 13:13 | x86 |
| Mscordacwks.dll | 2.0.50727.3068 | 3,087,880 | Ngày 16 tháng 9 năm 2008 | 10:44 | IA-64 |
| Mscorlib.dll | 2.0.50727.3068 | 4,005,888 | Ngày 16 tháng 9 năm 2008 | 10:44 | IA-64 |
| Mscorwks.dll | 2.0.50727.3068 | 20,153,856 | Ngày 16 tháng 9 năm 2008 | 10:44 | IA-64 |
Trạng thái
Microsoft đã xác nhận rằng đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong mục "áp dụng cho".
Xem thêm thông tin
Các bước để tái tạo vấn đề
Để tái tạo sự cố này, hãy tạo dự án Microsoft Visual C#, rồi chạy mã sau trên máy tính đã cài đặt .NET Framework 3.5 SP1.
using System;
namespace GetCustomModifiersBug
{
public interface IGenericInterface<T1, T2>
{
void GenericIfcMethod<T3>(T3 t3);
}
class Program
{
static void Main()
{
Type ifc = typeof(IGenericInterface<int, int>);
// Either of the following lines on their own will cause the problem
ifc.GetMethod("GenericIfcMethod").GetParameters()[0].GetOptionalCustomModifiers();
ifc.GetMethod("GenericIfcMethod").GetParameters()[0].GetRequiredCustomModifiers();
}
}
}
Tham khảo
Để biết thêm thông tin về thuật ngữ cập nhật phần mềm, hãy bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:
824684 Mô tả thuật ngữ chuẩn được sử dụng để miêu tả các bản cập nhật phần mềm của Microsoft