Bạn có thể gặp phải thông báo lỗi như dưới đây trong trường hợp Upload lên Web Hosting một Website ASP.NET 2.0/3.5.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
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:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\sb2\4d76034e\bec2c8d0\App_Web_clientredirector.ascx.cdcab7d2.zmdrab5k.dll' and 'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\sb2\4d76034e\bec2c8d0\App_Web_axhgbqrn.dll' Source Error: Line 11: Line 12: <!-- client redirector --> Line 13: <sb:ClientRedirector runat="server" id="ClientRedirector" /> Line 14: Line 15: <!-- fragment monitor --> Source File: d:\project\mine\sb2\pageLayout.ascx Line: 13 |
MỤC LỤC
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:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files
.
Khi nạp trang web để xử lý, lỗi xuất hiện nếu có 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)
Khắc phục
Có 2 phương pháp để khắc phục tình trạng này:
Phương pháp : Đ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 Web 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 Web 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ủ.Phương pháp 2: Sắp xếp lại thư mục trong ứng dụng (Web Project trong Visual Studio)
Để tránh cho các Class bị tham khảo lẫn nhau (circular reference), bạn thử thực hiện:
- Kiểm tra lại các mối liên hệ sử dụng một Class bởi những Class khác
- Tìm kiếm xem liệu DLL-1 bị tham khảo DLL-2, và DLL-2 lại tham khảo ngược lại DLL-1
- Đặt các Class được tham khảo đến trong cùng một thư mục
Nếu mô tả trên khó hiểu đối với bạn, chúng tôi đề nghị bạn đọc nguyên bản ở đây: http://support.microsoft.com/kb/919284.