Cấp bậc tác giả:

DOTNET

Fix lỗi Sys is not defined và popup không hoạt động trên ASP.NET WebForms khi deploy IIS

Được viết bởi webmaster ngày 22/04/2026 lúc 10:06 AM
Khi deploy hệ thống ASP.NET WebForms cũ lên IIS hoặc server mới, bạn có thể gặp các lỗi sau ngay khi mở trang: Sys is not defined ASP.NET Ajax client-side framework failed to load
  • 0
  • 19

Fix lỗi Sys is not defined và popup không hoạt động trên ASP.NET WebForms khi deploy IIS

Khi deploy hệ thống ASP.NET WebForms cũ lên IIS hoặc server mới, bạn có thể gặp các lỗi sau ngay khi mở trang:

Sys is not defined
ASP.NET Ajax client-side framework failed to load

Kèm theo các vấn đề:

  • ❌ Popup không tắt được
  • ❌ Không tự redirect sau login
  • ❌ Các control AJAX không hoạt động
  • ❌ Console báo lỗi liên quan ScriptResource.axd

🎯 Nguyên nhân gốc

Nguyên nhân chính không nằm ở code, mà do Content Security Policy (CSP) trên server quá chặt, dẫn đến:

  • Chặn unsafe-eval → ASP.NET AJAX không chạy được
  • Chặn unsafe-inline → script inline bị vô hiệu
  • Không cho phép load font/script ngoài
  • Làm hỏng ScriptResource.axd

👉 Kết quả: object Sys không được khởi tạo → toàn bộ JS framework của WebForms bị lỗi


✅ Cách xử lý (không cần sửa code)

Chỉ cần cấu hình lại CSP trên server/IIS.

🔹 Thêm cấu hình vào web.config

<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Content-Security-Policy"
value="default-src 'self' https: data:;
script-src 'self' 'unsafe-inline' 'unsafe-eval' https:;
style-src 'self' 'unsafe-inline' https:;
font-src 'self' data: https:;
img-src 'self' data: https:;" />
</customHeaders>
</httpProtocol>
</system.webServer>

🔍 Giải thích nhanh

DirectiveÝ nghĩa
default-srcNguồn mặc định
script-src 'unsafe-inline' 'unsafe-eval'Cho phép ASP.NET AJAX chạy
style-src 'unsafe-inline'Cho phép CSS inline
font-srcTránh lỗi font bị chặn
img-srcCho phép ảnh base64

👉 Quan trọng nhất là:

'unsafe-inline' và 'unsafe-eval'

Nếu thiếu 2 cái này → WebForms cũ gần như chắc chắn lỗi


⚠️ Lưu ý bảo mật

Cấu hình trên nới lỏng CSP, vì:

  • unsafe-evalunsafe-inline có thể tăng rủi ro XSS
  • Tuy nhiên đây là bắt buộc với hệ thống ASP.NET WebForms cũ

👉 Khuyến nghị:

  • Chỉ áp dụng cho hệ thống nội bộ hoặc legacy
  • Nếu hệ thống public → cân nhắc migrate sang ASP.NET Core

✅ Kết quả sau khi fix

Sau khi cấu hình đúng:

  • ✔ Không còn lỗi Sys is not defined
  • ✔ Popup đóng/mở bình thường
  • ✔ Login redirect hoạt động
  • ✔ AJAX control chạy lại
  • ✔ Không còn lỗi ScriptResource.axd

🧠 Kinh nghiệm thực tế

99% các lỗi kiểu này khi deploy WebForms lên IIS mới là do:

  • CSP chặn script
  • IIS chặn .axd
  • ASP.NET chưa đăng ký đúng

👉 Nhưng phổ biến nhất vẫn là CSP

Nguồn bài viết: DOTNET.VN

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML