IIS7 trả về trống khi yêu cầu nội dung tĩnh


14

Tôi đang cố gắng định cấu hình máy demo là EEEPC với phiên bản Windows 7 Home Premium, tất cả các trình điều khiển được tải đúng cách (đừng hỏi tôi tại sao lại là phiên bản Home) với IIS7 được cài đặt.

Tôi đã triển khai ứng dụng để được demo-ed trên máy là một trang web ASP.NET MVC, trang web được thêm vào thông qua bảng điều khiển, thêm một nhóm ứng dụng. Nhóm ứng dụng chạy dưới dạng NetworkService và khách xác thực là IUSR.

Tôi đã thêm quyền sửa đổi cho NetworkService và đọc và thực thi quyền đối với IUSR đối với thư mục của trang web và nội dung của nó.

Khi tôi truy cập vào thư mục gốc của web, hãy nói http://example.com/ Tôi nhận được một HTML thích hợp được hiển thị từ trang web (có nghĩa là ứng dụng hoạt động) nhưng vấn đề là tất cả nội dung tĩnh đều trả về trống.

Tôi không chắc tại sao điều này lại xảy ra. Không có trang lỗi 404 hoặc 500, chỉ phản hồi trống khi tôi truy cập nội dung tĩnh. Tất cả nội dung do ASP.NET tạo ra đều hoạt động tốt (mặc dù hơi lạ vì tất cả CSS và hình ảnh sẽ không tải)

Xin hãy giúp đỡ, IIS7 Management Console rất khó hiểu với tôi và tôi cần máy vào ngày mai.

Câu trả lời:



2

Trong trường hợp của tôi, vai trò máy chủ đã được cài đặt và trình xử lý tĩnh đã phục vụ các trang trống ngay cả đối với một trang web thử nghiệm tầm thường chỉ với một ánh xạ xử lý duy nhất.

Cách khắc phục là để cho phép hạn chế yêu cầu "Chỉ gọi trình xử lý nếu yêu cầu được ánh xạ tới". Không quan trọng tôi đặt nó thành "Tệp" hay "Tệp hoặc thư mục"; miễn là hộp kiểm được bật, nó hoạt động:

                  nhập mô tả hình ảnh ở đây

Nếu điều này vẫn không có ích, một điều khác dẫn đến các trang trống là cố gắng chỉ định một đường dẫn trong phần "Đường dẫn yêu cầu", như publichoặc có thể public/*. Cái sau đơn giản là sai, trong khi cái trước nên được chấp nhận, nhưng thay vào đó lại dẫn đến các trang trống. Giải pháp là bọc ánh xạ trình xử lý vào một <location path='public'>phần, chỉ định *cho cài đặt "Đường dẫn yêu cầu". Hoặc, trong IIS Manager, mở rộng trang web và chọn thư mục của bạn trước, sau đó chỉnh sửa ánh xạ xử lý.


1

Như @MattB đã đề xuất, tôi không bật tính năng "Nội dung tĩnh", nhưng đó chỉ là một phần của vấn đề.

Tôi đã thêm tính năng "Nội dung tĩnh" nhưng vấn đề vẫn còn tồn tại, vì vậy tôi đi về việc loại bỏ MvcHttpHandler mặc định khỏi danh sách ánh xạ xử lý và bằng cách nào đó, vấn đề tự giải quyết ... vì vậy vấn đề là MvcHttpHandler đã chặn các yêu cầu trước khi TĩnhFileHandler,

FYI, sau khi cài đặt "Nội dung tĩnh", cũng đảm bảo rằng ...

  1. Trong Trình quản lý dịch vụ thông tin Internet, nhấp vào trang web của bạn.
  2. Nhấp đúp vào tính năng "Handler Mappings".
  3. Ở phía bên phải (bảng Hành động), bạn sẽ thấy một liên kết có tiêu đề "Xem danh sách đã đặt hàng ...", nhấp vào liên kết đó.
  4. Sau đó, bạn sẽ tìm thấy thứ tự mô-đun được khớp với từng yêu cầu, đảm bảo rằng thứ tự có ý nghĩa.

Trong trường hợp của tôi, MvcHttpHandler vượt lên trên tất cả mọi thứ khác, tôi đã giải quyết vấn đề bằng cách di chuyển nó xuống cuối danh sách, đây là nơi hợp lý nhất mà nó phải ở vì trình xử lý tệp AXD, trình xử lý TRACE, trình xử lý OPTION và nội dung tĩnh bị bắn lúc xử lý yêu cầu trước.

Hy vọng điều này sẽ giúp ai đó googling cho cùng một vấn đề :-)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.