Lỗi HTTP 403,14 - Bị cấm - Máy chủ Web được định cấu hình để không liệt kê nội dung của thư mục này


146

Tôi vừa tạo một trang web trống mới trong Visual Studio 2012 và nhấp vào chạy (tức là xem trong trình duyệt) và tôi gặp lỗi này:

Lỗi HTTP 403,14 - Bị cấm Máy chủ web được cấu hình để không liệt kê nội dung của thư mục này.

Tôi đã vào IIS và nhấp vào duyệt Thư mục và sau đó đảm bảo rằng duyệt Thư mục đã được bật nhưng tôi vẫn gặp lỗi này. Tôi không thể tìm ra nó?

Dự án trang web tôi vừa tạo không được liệt kê trong các trang web mặc định trong Trình quản lý IIS mà tôi nghĩ là kỳ lạ.

Làm thế nào để tôi thoát khỏi lỗi này?


Dự án có được cấu hình để sử dụng IIS không? Hoặc IIS Express? Hay Casini?
Kris Vandermotten

Bạn đã chạy hoặc xem trong trình duyệt ? 2 điều khác nhau. Nếu đây là một dự án MVC, thì bạn có thể đã cố gắng xem viewmột trình duyệt?
christiandev

Vui lòng đảm bảo rằng bạn đã bật ASP.NET 4.5 hoặc ASP.NET từ Bảng điều khiển \ Tất cả các mục trong Bảng điều khiển \ Chương trình và Tính năng \ Bật hoặc tắt Tính năng của Windows \ Dịch vụ thông tin Internet \ Dịch vụ web toàn cầu \ Tính năng phát triển ứng dụng \ ASP.NET 4.5 hoặc ASP.NET 3.5 tùy thuộc vào cài đặt nhóm Ứng dụng của bạn.
Bimal Das

Câu trả lời:


142

giữ tệp này vào tệp cấu hình web của bạn sau đó đổi tên add value = "yourwebformname.aspx"

<system.webServer>
    <defaultDocument>
       <files>
          <add value="insertion.aspx" />
       </files>
    </defaultDocument>
    <directoryBrowse enabled="false" />
</system.webServer>

khác

<system.webServer>
    <directoryBrowse enabled="true" />
</system.webServer>

1
Tôi đã làm việc trong dự án này trong nhiều tháng - không bao giờ cần đến dòng này. Tôi đã xuất bản trang web ngày hôm nay và nó sẽ không chạy trong gỡ lỗi nữa !!! Đã thêm dòng này làm cho nó hoạt động trở lại! Tôi đã kiểm tra SVN - chắc chắn không bao giờ cần đến nó trước đây. WTF!? Dù sao cũng cảm ơn, chỉ lãng phí một giờ :)
Percy

tôi đang nhận được lỗi HTTP 500,22 - Lỗi máy chủ nội bộ.
Bryan Labuschagne

40

Sự cố này xảy ra do trang Web không Directory Browsingkích hoạt tính năng và tài liệu mặc định không được cấu hình. Để giải quyết vấn đề này, sử dụng một trong các phương pháp sau. Để giải quyết vấn đề này, tôi đã làm theo các bước trong Phương pháp 1 như được đề cập trong trang Hỗ trợ MS và phương pháp được đề xuất.

Phương pháp 1: Kích hoạt tính năng Duyệt thư mục trong IIS (Được khuyến nghị)

  1. Bắt đầu quản lý IIS. Để thực hiện việc này, bấm Bắt đầu, bấm Chạy, gõ inetmgr.exe, rồi bấm OK.

  2. Trong IIS Manager, mở rộng tên máy chủ, mở rộng các trang Web và sau đó nhấp vào trang web mà bạn muốn sửa đổi.

  3. Trong giao diện Tính năng, bấm đúp vào Duyệt thư mục.

  4. Trong ngăn Hành động, bấm Kích hoạt.

Nếu điều đó không hiệu quả, bạn có thể gặp vấn đề khác với vấn đề danh sách thư mục. Vì vậy, làm theo các bước dưới đây,

Phương pháp 2: Thêm một tài liệu mặc định

Để giải quyết vấn đề này, hãy làm theo các bước sau:

  • Bắt đầu quản lý IIS. Để thực hiện việc này, bấm Bắt đầu, bấm Chạy, gõ inetmgr.exe, rồi bấm OK.
  • Trong IIS Manager, mở rộng tên máy chủ, mở rộng các trang Web và sau đó nhấp vào trang web mà bạn muốn sửa đổi.
  • Trong giao diện Tính năng, bấm đúp vào Tài liệu mặc định.
  • Trong ngăn Hành động, bấm Kích hoạt.
  • Trong hộp Tên tệp, nhập tên của tài liệu mặc định, rồi bấm OK.

Phương pháp 3: Kích hoạt tính năng Duyệt thư mục trong IIS Express

Lưu ý Phương pháp này dành cho các nhà phát triển web gặp phải sự cố khi họ sử dụng IIS Express.

Thực hiện theo các bước sau:

  • Mở một dấu nhắc lệnh, rồi đi đến thư mục IIS Express trên máy tính của bạn. Ví dụ: đi đến thư mục sau trong dấu nhắc lệnh: C:\Program Files\IIS Express

  • Nhập lệnh sau, rồi nhấn Enter:

    appcmd set config /section:system.webServer/directoryBrowse /enabled:true


Điều này nên được chấp nhận câu trả lời. Phương pháp 2 làm việc cho tôi. Ban đầu tôi tạo trang web trống, sau đó thêm một biểu mẫu web có tên "WebForm1.aspx". Do đó tôi cần thêm tên đó vào danh sách tài liệu mặc định. Cảm ơn bạn.
novato

31

Đi đến cmd và gõ này:

cho hệ điều hành x64:% Windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir

cho hệ điều hành x32:% Windir% \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -ir

Điều này sẽ cài đặt đúng phiên bản và IIS sẽ hiểu trình duyệt thư mục MVC


% Windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe - điều này hoạt động với tôi cho hệ thống 64 bit và ứng dụng MVC của tôi
Amar Gadekar

lệnh cho x64 cũng hoạt động để tôi giải quyết vấn đề đó xảy ra trong dịch vụ web asmx của tôi
Cavid

24

Có thể có nhiều lý do cho vấn đề. Một cái hoạt động với tôi trên IIS 8.5 là như sau

Các bước

  1. Nhập "bật hoặc tắt các tính năng của cửa sổ" trong tìm kiếm.
  2. Nhấp vào "Thêm vai trò và tính năng" trong Trình quản lý máy chủ.
  3. Trong Wizard cuộn xuống máy chủ Web và chọn: Máy chủ Web -> Phát triển ứng dụng. Chọn tất cả ngoại trừ CGI từ danh sách như trong ảnh chụp màn hình

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

  1. Cuối cùng nhấn next và Install.
  2. Khởi động lại IIS

Trang web của bạn có thể bắt đầu làm việc.


18

Đặt một trang bắt đầu.

Khi tôi gặp vấn đề này, tôi đã đi vào trình khám phá giải pháp, tìm thấy trang tôi muốn xem đầu tiên (trong trường hợp của tôi là "Home.aspx), nhấp chuột phải vào nó và chọn" Đặt làm trang bắt đầu. " Nghe có vẻ rất giống với bạn). Đây là trong Visual Studio 2012 Professional và tôi đã chạy nó trong Firefox.


17

Cố gắng thêm các cài đặt sau vào web.configtập tin.

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>

2
Lỗi HTTP 500,22 - Lỗi máy chủ nội bộ
Bryan Labuschagne

Vấn đề của tôi đã được giải quyết, sau khi thêm mã này vào tệp webconfig, cảm ơn.
yadavr

17

Tôi vừa dán đoạn mã này vào tệp web.config và lỗi đã được khắc phục.

<system.webServer>
    <directoryBrowse enabled="true" />
</system.webServer>

10

Tôi có một biện pháp khắc phục nhanh chóng cho việc này. Trong thực tế, tôi đã gặp lỗi này vì tôi đã không đặt trang web của mình làm trang bắt đầu. Khi tôi thực hiện trang web của mình (html / aspx) khi đặt trang bắt đầu như hình bên dưới, tôi đã sửa lỗi này.nhập mô tả hình ảnh ở đây

Tôi không biết liệu giải pháp này sẽ giúp người khác.


8

Mẫu trang web trống tạo ra một trang web ASP.NET bao gồm tệp Web.config nhưng không có tệp nào khác. Có nghĩa là bạn không có bất kỳ trang mặc định nào để hiển thị trên trình duyệt hoặc chạy.

Thông báo lỗi này chỉ có nghĩa là bạn đã không thiết lập và định cấu hình tài liệu mặc định đúng cách trên IIS của bạn.

Một khi điều này được cấu hình, thông báo lỗi sẽ biến mất.


Tôi đã thêm một trang chủ vào trang web trống và khi tôi nhấp vào chạy mà không có mã tôi vẫn gặp lỗi. Tôi không chắc chắn những gì tôi cần làm để có được nó chạy?
Aindriu

Bạn có trang mặc định trong trang web của mình không nếu không thì hãy tạo và thiết lập trang mặc định như trong liên kết này iis.net/learn/web-hosting/web-server-for- Shared
Sain Pradeep

Không, tôi không có trang mặc định trong trang web trống. Tôi đang theo dõi một ví dụ trong một cuốn sách C #. Tôi đã thêm một trang mặc định và trang sẽ tải lên trong trình duyệt web ok. Nhưng ví dụ chỉ sử dụng các trang chính. Tôi không hiểu tại sao nó không hoạt động. Đó là một ví dụ rất đơn giản.
Aindriu

8

Trên trang web trong IIS:

  1. chọn 'Cài đặt nâng cao'
  2. Sau đó, cho nhóm ứng dụng, chọn "ASP.NET v4.0"

hình ảnh chẳng hạn


2
Điều này không trả lời câu hỏi của OP. Thay đổi Nhóm ứng dụng được sử dụng bởi một trang web trong IIS không có bất kỳ ảnh hưởng nào đến cách trang web được cấu hình để liệt kê nội dung thư mục (hoặc không liệt kê chúng). Điều này phải làm thay vì với cấu hình trong tệp web.config.
JNYRanger

8

Bảng điều khiển> Bật hoặc tắt tính năng của Windows

Dịch vụ thông tin Internet> Dịch vụ web toàn cầu> Tính năng phát triển ứng dụng

Kích hoạt hai tùy chọn

Khả năng mở rộng .NET 3.5
.ASP.NET 3.5

Phía dưới cái nhập mô tả hình ảnh ở đây



5

Đối với trường hợp của tôi, tôi đã nhận được lỗi tương tự sau khi tạo một dự án Api Web trống.

Tôi đã giải quyết nó bằng cách chỉnh sửa RouteConfig.cs trong thư mục App_Start :)

Tôi đã thay thế dòng đọc mã: -

defaults: new { action = "Index", id = UrlParameter.Optional }

với những điều sau đây :-

defaults: new { controller = "Index", action = "Index", id = UrlParameter.Optional }

Lưu ý rằng tôi chỉ phải xác định Bộ điều khiển có hành động chỉ mục mà tôi muốn gọi trước.

Vâng tất cả các câu trả lời trên không giải quyết được trường hợp của tôi (như tôi muốn), vd

  • Kích hoạt duyệt thư mục từ web.config chỉ liệt kê tất cả các tệp và thư mục trong dự án của tôi giống như php sẽ làm khi bạn không có tệp chỉ mục
  • Đặt defaultDocument cũng không hoạt động đối với tôi bằng cách nào đó vẫn gặp Lỗi HTTP 403,14 (Vẫn không biết tại sao)

Nếu có ai có hoàn cảnh tương tự như tôi thì hãy thử xem.


Đây là hầu hết câu trả lời tôi cần. Tuy nhiên, tên bộ điều khiển phải khớp với tên được tạo cho ứng dụng MVC Tên bộ điều khiển (Nếu bạn gọi bộ điều khiển IndexContoder thì nó sẽ hoạt động) - vì vậy tên hành động mặc định trên bộ điều khiển phải là Index và sau đó tất cả được gắn với nhau - các đề xuất Theo tôi, sử dụng duyệt thư mục KHÔNG phải là một ý tưởng hay vì nó cho phép mọi người điều hướng toàn bộ nội dung trang web của bạn.
Đánh dấu W. Mitchell


4

Trong trường hợp của tôi, tôi gặp lỗi này vì ứng dụng web của tôi là .NET v4 và nhóm ứng dụng được cấu hình cho .NET v2.

Bấm đúp vào nhóm ứng dụng sẽ hiển thị cửa sổ bật lên, nơi chúng ta có thể chọn phiên bản .NET Framework mong muốn.


4

GIẢI PHÁP
Tìm kiếm "Windows Feature"khi bắt đầu ->
Nhấp "turn features on and off"->
Mở rộng "Internet Information Services"
Kiểm tra mọi chương trình trong mỗi thư mục con và
Nhấp vào "OK"
Điều này sẽ khắc phục tất cả các vấn đề của bạn. nhập mô tả hình ảnh ở đây


3

Tôi đã giải quyết vấn đề của mình với bỏ qua các bước này =>

  1. Mở trình quản lý IIS
  2. Nhấp vào Ứng dụng
  3. Nhấp vào Duyệt thư mục
  4. Nhấp vào Mở tính năng (Ở bên phải bạn sẽ thấy bên dưới Hành động)
  5. Nhấp vào Kích hoạt

2

Điều này có thể được gây ra bởi một mục bum applicationationhost.config.

Dừng IIS Express nếu nó đang chạy (nhấp chuột phải vào biểu tượng cuộn màu xanh nhạt trong Khay hệ thống Windows; Thoát).

Chuyển đến Thuộc tính> Web của dự án của bạn và kiểm tra xem Url dự án có đúng không. Trong trường hợp url https, hãy đảm bảo rằng nó bao gồm số cổng trong phạm vi hợp lệ. Một URL chính xác có thể là:https://localhost:44300/ . Bây giờ hãy nhấn nút "Tạo thư mục ảo" bên cạnh URL. Điều này thêm một mục mới vào applicationationhost.config.

Bắt đầu lại dự án và hy vọng bạn sẽ không còn gặp lỗi nữa.


2

Tôi chắc chắn sau nhiều năm bạn có thể đã có câu trả lời. Nhưng trong trường hợp người khác đang tìm kiếm một câu trả lời trong tương lai.

Đối với vấn đề của tôi, tôi đã không phải làm bất cứ điều gì với web.config. Tôi không nghĩ rằng tôi sẽ cần phải làm như nó đã hoạt động trước đây.

Đảm bảo không có thư mục nào được đặt tên giống như trang của bạn, tôi có một thư mục có tên là "blog" và một trang có tên "blog.aspx", nó đang cố tải thư mục, tôi nhận thấy điều này trong liên kết, đã thay đổi thư mục thành blogContent , bây giờ nó tải tốt.

Tôi đang đăng một bản sao ở đây vì bạn là người đầu tiên trong truy vấn tìm kiếm.


2

Vấn đề có thể đến từ việc chạy dự án từ visual studio trên IIS trong khi ở trên tab đã mở sai trên visual studio, vì vậy giải pháp là mở đúng tab (dạng web bạn muốn kiểm tra trên trình duyệt của bạn) hoặc như những người khác đã đề xuất trong các câu trả lời khác, nhấp chuột phải vào biểu mẫu web mà bạn muốn đặt làm trang chủ, sau đó nhấp vào 'Đặt làm trang bắt đầu'.


1

Trong trường hợp của tôi, tôi đã bị mất Microsoft.Owin.Host.SystemWebnuget.


1

nhấp chuột phải vào dự án của bạn trong trình khám phá giải pháp và sau đó nhấp vào thêm mục mới, thêm trang HTML và đặt tên là index.HTML sau khi tất cả chạy lại ứng dụng của bạn


1

Trong trường hợp của tôi

Trong Nhóm ứng dụng, tôi đặt phiên bản .NetFrameWork thành V4.0 và đã giải quyết vấn đề ....


1

Bạn nên cài đặt phần Phát triển ứng dụng của IIS trên máy chủ của mình như bạn có thể thấy trong hình này:nhập mô tả hình ảnh ở đây


0

Điều này có thể xảy ra vì bất kỳ lý do. Nếu bạn đã thử qua tất cả các lỗi trên mà vẫn gặp lỗi tương tự, tôi có thêm một giải pháp.

Một lý do khác điều này có thể xảy ra là

  1. Nếu bạn có cùng một cơ sở mã đang chạy trước khi bạn bắt đầu chạy giải pháp mới, bạn có thể gặp phải lỗi này. Lý do là IIS Express đang cố chạy trên cùng một cổng như đối với giải pháp cũ có đường dẫn vật lý được đăng ký cho URL bắt đầu ứng dụng.
  2. Vì IIS không thể tìm ra đường dẫn vật lý để chạy giải pháp, nên có thể không thể xác định được tất cả các dll cần thiết để khởi động ứng dụng.

Các giải pháp:

  1. Cố gắng thay đổi cổng ứng dụng thành mặc định. Ví dụ., Sử dụng http://localhost/thay vìhttp://localhost:25836/

  2. Hãy thử đổi sang bất kỳ cổng nào khác nếu bạn đã sử dụng cổng mặc định cho ứng dụng trước đó. ví dụ: http://localhost:25364/thay vìhttp://localhost/

Điều này sẽ cho phép IIS / IIS Express trỏ đến đường dẫn bin mặc định của ứng dụng mới hơn mà bạn đang cố chạy, nó sẽ có tất cả các dll cần thiết để khởi động ứng dụng.

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.