Tại sao IIS từ chối phục vụ nội dung ASP.NET?


16

Máy chủ Windows Server 2003 Std của tôi từ chối máy chủ nội dung ASP.NET. Nó phục vụ html thông thường tốt nhưng mọi thứ .net, thậm chí một tệp html một dòng với phần mở rộng ASPX đều thất bại.

Những điều tôi đã thử:

  • Không có gì trong nhật ký sự kiện hoặc nhật ký IIS WWW khi thất bại.
  • Fiddler cho thấy không có phản ứng
  • Tôi đã cài đặt lại .NET với
    • C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727> aspnet_regiis.exe -U
    • C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727> aspnet_regiis.exe -I
  • Tôi cung cấp các quyền rất cao cho mọi thứ tôi có thể nghĩ đến (toàn quyền kiểm soát, đọc, viết, v.v.) cho tất cả người dùng có thể có liên quan (IUSER *, ASP.NET, v.v.).
  • Tôi đã xác nhận rằng Tiện ích mở rộng dịch vụ web ASP.Net v1 và v2 được "cho phép" trong IIS
  • Xác nhận rằng Trình quản lý máy chủ đã bật vai trò IIS và ASP.Net

Một lần nữa: đây là kịch bản:

Bất kỳ hướng dẫn sẽ được nhiều đánh giá cao!


Giải pháp: Tôi đã cài đặt lại theo hướng dẫn bên dưới và nó hoạt động ngay bây giờ. Cảm ơn tất cả!

Câu trả lời:


23

Tôi đã gặp phải vấn đề chính xác này nhiều lần và mỗi lần, giải pháp là:

  1. đi đến Bảng điều khiển
  2. đi đến khu vực "Thành phần Windows"
  3. xóa IIS, để nó gỡ cài đặt
  4. khởi động lại
  5. thêm lại IIS ( đảm bảo bao gồm các công cụ ASP.NET khi bạn đánh dấu vào các hộp ).
  6. Chạy: C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727> aspnet_regiis.exe -I

Tôi đã dành hàng giờ để gỡ lỗi này tại một trang web của khách hàng một lần và đó là mẹo. Kể từ đó, mỗi lần điều này xảy ra, đây là cách khắc phục.

Tôi không chắc nguyên nhân gốc là gì, nhưng chúng tôi đã xé cấu hình IIS ra một lần khi cố gắng tìm ra nó và thậm chí đã cho Microsoft RDC vào máy chủ trong 2 hoặc 3 giờ và họ không thể giúp được .

Vì vậy, tôi viết nó ra như một lỗi không có giấy tờ trong ASP.NET/IIS.


1
Điều đó đã làm nó. Soooo đã lãng phí nhiều thời gian cho việc này với một giải pháp không thỏa mãn như vậy - tôi ghét không biết nguyên nhân thực sự. Oh, nó đang hoạt động - cảm ơn rất nhiều, Sam!
Michael Haren

2
Bước 6: C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727> aspnet_regiis.exe -I
Michael Haren

Không có vấn đề gì - rất vui khi được phục vụ, vì tôi biết đây là một điều đau đớn!
Sam Schutte

Ngoài ra, có thể nguyên nhân thực sự chỉ đơn giản là cài đặt xấu. Tôi biết khi tôi gặp phải vấn đề này, mọi thứ khác đều ổn, nhưng tôi cho rằng ở đâu đó, sổ đăng ký hoặc cấu hình bị vặn vì một số lý do.
Sam Schutte

Có thể đáng để định dạng lệnh trong bước 6 dưới dạng mã, để dễ dàng hơn khi nói rằng cờ là chữ hoa 'i'.
Dave Andersen

9

Hãy thử điều này: http: //localhost/blah.aspx (nên là một trang không tồn tại). Nếu nó cung cấp cho bạn 404 thay vì trang lỗi asp.net thì asp.net không chạy, nếu nó cung cấp cho bạn lỗi 403 thì các quyền cho trang web bị sai.

Đây là một danh sách kiểm tra có thể giúp:

  • IIS có chạy không?
  • Trang web của bạn đang chạy?
  • Là nhóm ứng dụng cho trang web của bạn hoạt động chính xác?
  • ASP.NET đã được cài đặt và đăng ký chưa?

    cd / d% Windir% \ Microsoft.Net \ Framework \ v2.0.50727

    aspnet_regiis -ua

    aspnet_regiis -i -enable

  • ASP.NET có chạy không?

Kiểm tra tab "ASP.NET" trong thuộc tính trang web của bạn. Hãy chắc chắn rằng nó sử dụng đúng phiên bản.

  • Các quyền có được thiết lập chính xác không?

Kiểm tra tab "Thư mục chính" trong thuộc tính của trang web của bạn, kiểm tra cài đặt "Thực thi quyền", nó sẽ được đặt để cho phép các tập lệnh. Đồng thời kiểm tra "Tiện ích mở rộng dịch vụ web" để đảm bảo asp.net được phép chạy.


Đây là một danh sách tốt đẹp để tham khảo trong tương lai. Tôi đã thử tất cả những thứ đó ngoại trừ các công tắc -a và -enable, và ý tưởng blah.aspx. Cài đặt lại IIS là những gì nó cần. Cảm ơn đã giúp đỡ!
Michael Haren

Một pool ứng dụng chạy chính xác trông như thế nào? Một pool ứng dụng chạy không chính xác trông như thế nào?
Ian Boyd

Trường hợp nào người ta tìm thấy "Tiện ích mở rộng dịch vụ web" để tôi có thể đảm bảo asp.net được phép chạy?
Ian Boyd

3

Mở trình quản lý IIS, bấm vào thư mục Tiện ích mở rộng dịch vụ web trong khung bên trái. Sau đó bấm vào Phần mở rộng ASP.NET trong khung bên phải và nhấp vào nút Cho phép.


Tuy nhiên, điều đó đã được cho phép, cảm ơn vì lời đề nghị
Michael Haren

2

Bạn không cần gỡ cài đặt / cài đặt lại IIS để thiết lập lại hỗ trợ .net, theo câu trả lời trước đó. Chỉ cần chạy tiện ích aspnet_regiis.exe nằm trong thư mục framwork thích hợp, ví dụ:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727

Tôi có làm điều này khác với ghi chú trong câu hỏi của tôi? Nếu không, thì tôi đã thử nó.
Michael Haren

Vì lý do nào, chỉ chạy regiis không giúp đỡ.
Sam Schutte
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.