Điểm:1

Làm cách nào để tìm ra nguyên nhân gây ra lỗi 403.18 trong IIS?

lá cờ in

Tôi đã cài đặt một ứng dụng mới trong IIS. Ứng dụng mới có một nhóm ứng dụng chuyên dụng giống như nhiều ứng dụng khác được cài đặt trên cùng một máy chủ. Có trang web gốc cũng có nhóm ứng dụng dành riêng cho nó. Tất cả các ứng dụng đã triển khai trước đây đều hoạt động tốt trong cấu hình này, nhưng ứng dụng mới nhất gây ra lỗi 403.18 khi tôi cố gắng duyệt đến ứng dụng đó.

Nếu tôi duyệt đến nó từ phiên RDP trên máy chủ, tôi sẽ nhận được trang lỗi chi tiết bao gồm thông tin sau:

Lỗi HTTP 403.18 - Bị cấm

Không thể xử lý yêu cầu đã chỉ định trong nhóm ứng dụng được cấu hình cho tài nguyên này trên máy chủ Web.

Nguyên nhân rất có thể:

  • Bộ lọc ISAPI hoặc mô-đun tùy chỉnh đã thay đổi URL để chạy trong nhóm ứng dụng khác với URL ban đầu.
  • Tiện ích mở rộng ISAPI (hoặc mô-đun tùy chỉnh) đã sử dụng ExecuteURL (hoặc ExecuteRequest) để chạy trong nhóm ứng dụng khác với nhóm ứng dụng URL ban đầu.
  • Bạn có một trang lỗi tùy chỉnh nằm trong một nhóm ứng dụng nhưng được tham chiếu bởi một trang Web trong nhóm ứng dụng khác. Khi mà URL được - xử lý, nó được xác định bởi IIS rằng nó phải có đã được xử lý trong nhóm ứng dụng đầu tiên, không phải nhóm khác.
  • Trang Web có nhiều ứng dụng được cấu hình. Ứng dụng mà yêu cầu này được định cấu hình để chạy trong đó được đặt để chạy trong một ứng dụng hồ bơi không tồn tại.

Những điều bạn có thể thử:

  • Nếu bạn có một ứng dụng đang cố xử lý một URL trong nhóm ứng dụng khác (chẳng hạn như đang cố xử lý một lỗi tùy chỉnh), đảm bảo rằng cả hai - chạy trong cùng một nhóm ứng dụng nếu thích hợp.
  • Nếu bạn đang cố xử lý một URL lỗi tùy chỉnh nằm trong nhóm ứng dụng khác, hãy bật tính năng Chuyển hướng lỗi tùy chỉnh.
  • Xác minh rằng nhóm ứng dụng cho ứng dụng tồn tại.
  • Tạo quy tắc theo dõi để theo dõi các yêu cầu không thành công đối với mã trạng thái HTTP này và xem liệu ExecuteURL có đang được gọi hay không. Để biết thêm thông tin về tạo quy tắc theo dõi cho các yêu cầu không thành công, hãy nhấp vào đây.

Tôi đã chạy dấu vết yêu cầu không thành công nhưng về cơ bản, nó lặp lại cùng một thông tin và dường như không cung cấp bất kỳ thông tin chi tiết nào. Tôi thừa nhận rằng tôi không hiểu mọi thứ trong tệp theo dõi đó.

Tôi đã thử thay đổi nhóm ứng dụng cho trang gốc thành cùng một nhóm với ứng dụng mới được triển khai. Thao tác này sẽ xóa lỗi 403.18, do đó, sự khác biệt về nhóm ứng dụng giữa ứng dụng và trang gốc dường như có liên quan đến lỗi này. Tuy nhiên, ứng dụng không tải và trình duyệt chỉ liệt kê thư mục trên nội dung đường dẫn vật lý.

Điều kỳ lạ là nhiều ứng dụng khác trên máy chủ này vẫn chạy tốt. Sự khác biệt lớn với ứng dụng mới là sử dụng xác thực .NET 5 và Azure AD.Những người khác sử dụng các phiên bản trước của .NET Core hoặc .NET Framework và xác thực Windows. Tôi đã xác minh rằng Gói dịch vụ lưu trữ .NET 5 đã được cài đặt.

Tôi đã thử làm theo danh sách "Những điều bạn có thể thử" trong trang lỗi và chúng dường như không áp dụng.

Có bất kỳ bước nào khác mà tôi có thể thử hoặc manh mối có thể giúp tôi tìm ra nguyên nhân gốc rễ của vấn đề này không? Tôi rất sẵn lòng cung cấp thêm thông tin chi tiết, nhưng tôi vẫn chưa chắc những chi tiết nào có liên quan.

Điểm:0
lá cờ in

Chà, cuối cùng tôi cũng tìm ra nguyên nhân của lỗi này. Tên của ứng dụng bị ảnh hưởng trước đây đã được cấu hình như một thư mục ảo và vẫn có một mục cho điều đó trong tệp applicationHost.config.

Phiên bản mới nhất đã được triển khai dưới dạng ứng dụng. Có một số mục lỗi thời khác cho tên ứng dụng trong tệp applicationHost.config.

Điều đã cho thấy điều này là tôi đã thử triển khai ứng dụng dưới một tên mới mà nó đã hoạt động. Điều đó có vẻ lạ nên tôi đã so sánh applicationHost.config giữa máy chủ nơi ứng dụng gây ra lỗi 403.18 và máy chủ nhà phát triển nơi ứng dụng hoạt động bình thường.

Nguyên nhân gốc rễ thực sự của lỗi này là do chúng tôi đã nhân bản một máy chủ web sản xuất và biến nó thành máy chủ web thử nghiệm. Các mục nhập không hợp lệ này đã có trong máy chủ sản xuất. Mặc dù vậy, nó hoạt động tốt nhất vì nếu không, chúng tôi sẽ không gặp phải lỗi 403.18 đó cho đến khi chúng tôi triển khai vào sản xuất.

Vì vậy, việc kiểm tra các mục nhập không hợp lệ trong applicationHost.config ít nhất là một trong các bước khắc phục sự cố có thể được thực hiện để giải quyết lỗi 403.18.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.