Khắc phục lỗi “The type exists in both AAA.dll and BBB.dll”

Đánh giá bài viết

Nội dung thông báo lỗi:

Compilation Error

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: CS0433: The type ‘ASP.clientredirector_ascx’ exists in both ‘c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filessb24d76034ebec2c8d0App_Web_clientredirector.ascx.cdcab7d2.zmdrab5k.dll’ and ‘c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Filessb24d76034ebec2c8d0App_Web_axhgbqrn.dll’

1.Nguyên nhân:

Website ASP.NET hoặc Web Application được máy chủ biên dịch tự động lần đầu tiên được kích hoạt hoặc khi bạn Upload tập tin .DLL mới. Tiến trình này sẽ hoàn tất trong vài giây, có thể lâu hơn nếu website của bạn đồ sộ. Sau khi biên dịch xong, các tập tin .DLL chứa mã sẽ được lưu tạm vào thư mục: c:WINDOWSMicrosoft.NETFrameworkv2.0.50727Temporary ASP.NET Files.

Khi nạp trang web để xử lý, lỗi sẽ xuất hiện nếu nằm trong các điều kiện:

+) Có Class trùng tên nhau được sử dụng để lập trình một User-Control.ascx

+) Cho dù Class bị trùng tên nằm trong 2 Namespace khác nhau, nhưng cùng được tham chiếu vào một WebApplication (References)

2.Phương án xử lý:

Điều chỉnh web.config

bạn mở tập tin web.config, bổ sung thuộc tính batch=”false” vào thẻ <compilation>.

Lưu ý: Phương pháp này chỉ phù hợp cho website nhỏ. Trong môi trường Cloud Hosting, nếu bạn chỉ định batch=”false” sẽ làm cho ASP.NET 2.0 biên dịch riêng rẽ từng trang ra một .DLL tương ứng. Việc này gây tốn nhiều bộ nhớ và tài khoản Cloud Hosting của bạn có thể bị khóa nếu Website có lượng truy cập cao. Về kỹ thuật, việc này sẽ gây phân mảnh bộ nhớ trên máy chủ.