HTTP Error 403.14 - Forbidden - เว็บเซิร์ฟเวอร์ได้รับการกำหนดค่าให้ไม่แสดงรายการเนื้อหาของไดเรกทอรีนี้


146

ฉันเพิ่งสร้างเว็บไซต์เปล่าใหม่ใน Visual Studio 2012 และคลิกเรียกใช้ (เช่นดูในเบราว์เซอร์) และฉันได้รับข้อผิดพลาดนี้:

HTTP Error 403.14 - ถูกห้ามเว็บเซิร์ฟเวอร์ได้รับการกำหนดค่าให้ไม่แสดงรายการเนื้อหาของไดเรกทอรีนี้

ฉันเข้าสู่ IIS และคลิกที่การเรียกดูไดเรกทอรีจากนั้นตรวจสอบให้แน่ใจว่าเปิดใช้งานการค้นหาไดเรกทอรีแล้ว แต่ฉันยังคงได้รับข้อผิดพลาด ฉันคิดไม่ออกเหรอ?

โครงการเว็บไซต์ที่ฉันเพิ่งสร้างขึ้นไม่ได้อยู่ในรายการเว็บไซต์เริ่มต้นใน IIS Manager ซึ่งฉันคิดว่าแปลก

ฉันจะกำจัดข้อผิดพลาดนี้ได้อย่างไร


มีการกำหนดค่าโครงการให้ใช้ IIS หรือไม่ หรือ IIS Express หรือ Casini
Kris Vandermotten

คุณเรียกใช้หรือดูในเบราว์เซอร์หรือไม่ 2 สิ่งที่แตกต่าง หากนี่เป็นโครงการ MVC คุณอาจลองดูviewในเบราว์เซอร์หรือไม่?
christiandev

โปรดตรวจสอบให้แน่ใจว่าคุณเปิดใช้งานASP.NET 4.5 หรือ ASP.NETจากรายการ \ Programs และ Features \ Control Panel \ All และแผงควบคุม \ คุณสมบัติ Windows เปิดหรือปิด \ Internet Information Services \ World Wide Services Services \ Application Information Services Services 4.5 หรือ ASP.NET 3.5ขึ้นอยู่กับการตั้งค่ากลุ่มแอปพลิเคชันของคุณ
Bimal Das

คำตอบ:


142

เก็บสิ่งนี้ไว้ในไฟล์กำหนดค่าเว็บของคุณจากนั้นเปลี่ยนชื่อเพิ่มค่า = "yourwebformname.aspx"

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

อื่น

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

1
ฉันทำงานโครงการนี้มาหลายเดือนแล้ว - ไม่จำเป็นต้องใช้สายนี้ ฉันเผยแพร่เว็บไซต์วันนี้และมันจะไม่ทำงานในการแก้ปัญหาอีกต่อไป !!! เพิ่มบรรทัดนี้ทำให้มันทำงานอีกครั้ง! ฉันตรวจสอบ SVN - ไม่เคยต้องการมันมาก่อน WTF !? ขอบคุณครับเสียเพียงหนึ่งชั่วโมง :)
เพอร์ซี่

ฉันได้รับข้อผิดพลาด HTTP 500.22 - ข้อผิดพลาดเซิร์ฟเวอร์ภายใน
ไบรอัน Labuschagne

40

ปัญหานี้เกิดขึ้นเนื่องจากเว็บไซต์ไม่ได้Directory Browsingเปิดใช้งานคุณสมบัติและไม่มีการกำหนดค่าเอกสารเริ่มต้น เมื่อต้องการแก้ไขปัญหานี้ใช้หนึ่งในวิธีต่อไปนี้ ในการแก้ไขปัญหานี้ฉันได้ปฏิบัติตามขั้นตอนในวิธีที่ 1 ดังที่กล่าวไว้ในหน้าการสนับสนุนของ MSและวิธีการที่แนะนำ

วิธีที่ 1: เปิดใช้งานคุณลักษณะการเรียกดูไดเรกทอรีใน IIS (แนะนำ)

  1. เริ่มตัวจัดการ IIS เมื่อต้องการทำเช่นนี้คลิกเริ่มคลิกเรียกใช้พิมพ์ inetmgr.exe แล้วคลิกตกลง

  2. ในตัวจัดการ IIS ขยายชื่อเซิร์ฟเวอร์ขยายเว็บไซต์แล้วคลิกเว็บไซต์ที่คุณต้องการปรับเปลี่ยน

  3. ในมุมมองคุณลักษณะคลิกสองครั้งที่การเรียกดูไดเรกทอรี

  4. ในบานหน้าต่างการกระทำให้คลิกเปิดใช้งาน

หากวิธีนี้ใช้ไม่ได้ผลคุณอาจประสบปัญหาแตกต่างจากปัญหาในรายการไดเรกทอรี ดังนั้นทำตามขั้นตอนด้านล่าง

วิธีที่ 2: เพิ่มเอกสารเริ่มต้น

เมื่อต้องการแก้ไขปัญหานี้ทำตามขั้นตอนเหล่านี้:

  • เริ่มตัวจัดการ IIS เมื่อต้องการทำเช่นนี้คลิกเริ่มคลิกเรียกใช้พิมพ์ inetmgr.exe แล้วคลิกตกลง
  • ในตัวจัดการ IIS ขยายชื่อเซิร์ฟเวอร์ขยายเว็บไซต์แล้วคลิกเว็บไซต์ที่คุณต้องการปรับเปลี่ยน
  • ในมุมมองคุณลักษณะดับเบิลคลิกเอกสารเริ่มต้น
  • ในบานหน้าต่างการกระทำให้คลิกเปิดใช้งาน
  • ในกล่องชื่อไฟล์พิมพ์ชื่อของเอกสารเริ่มต้นแล้วคลิกตกลง

วิธีที่ 3: เปิดใช้งานคุณลักษณะการเรียกดูไดเรกทอรีใน IIS Express

หมายเหตุวิธีนี้ใช้สำหรับนักพัฒนาเว็บที่ประสบปัญหาเมื่อใช้ IIS Express

ทำตามขั้นตอนเหล่านี้:

  • เปิดพรอมต์คำสั่งแล้วไปที่โฟลเดอร์ IIS Express บนคอมพิวเตอร์ของคุณ ตัวอย่างเช่นไปที่โฟลเดอร์ต่อไปนี้ในพร้อมท์คำสั่ง: C:\Program Files\IIS Express

  • พิมพ์คำสั่งต่อไปนี้แล้วกด Enter:

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


คำตอบนี้ควรได้รับการยอมรับ วิธีที่ 2 ใช้ได้สำหรับฉัน ตอนแรกฉันสร้างเว็บไซต์เปล่าแล้วเพิ่มเว็บฟอร์มชื่อ "WebForm1.aspx" ดังนั้นฉันต้องเพิ่มชื่อนั้นในรายการเอกสารเริ่มต้น ขอบคุณ.
novato

31

ไปที่ cmd และพิมพ์สิ่งนี้:

สำหรับ x64 ระบบปฏิบัติการ:% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe --ir

สำหรับ x32 ระบบปฏิบัติการ:% windir% \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe --ir

สิ่งนี้จะติดตั้งเวอร์ชันที่ถูกต้องและ IIS จะเข้าใจการค้นหาไดเรกทอรี MVC


% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe - สิ่งนี้ใช้ได้กับฉันสำหรับระบบ 64 บิตและแอปพลิเคชัน MVC ของฉัน
Amar Gadekar

คำสั่งสำหรับ x64 ยังใช้งานได้สำหรับฉันในการแก้ปัญหาที่เกิดขึ้นในบริการเว็บ asmx ของฉัน #
4324

24

อาจมีสาเหตุหลายประการสำหรับปัญหา หนึ่งที่ทำงานสำหรับฉันใน IIS 8.5 เป็นดังนี้

ขั้นตอน

  1. พิมพ์ "เปิดหรือปิดคุณสมบัติหน้าต่าง" ในการค้นหา
  2. คลิกที่ "เพิ่มบทบาทและคุณสมบัติ" ในตัวจัดการเซิร์ฟเวอร์
  3. ในตัวช่วยสร้างเลื่อนลงไปที่เว็บเซิร์ฟเวอร์และเลือก: เว็บเซิร์ฟเวอร์ -> การพัฒนาแอปพลิเคชัน เลือกทั้งหมดยกเว้น CGI จากรายการตามที่แสดงในภาพหน้าจอ

ป้อนคำอธิบายรูปภาพที่นี่

  1. ในที่สุดก็กดปุ่มถัดไปและติดตั้ง
  2. เริ่มต้น IIS

เว็บไซต์ของคุณอาจเริ่มทำงาน


18

ตั้งค่าหน้าเริ่มต้น

เมื่อฉันมีปัญหานี้ฉันไปที่ explorer แก้ปัญหาพบหน้าฉันต้องการที่จะเห็นก่อน (ในกรณีของฉัน "Home.aspx) คลิกขวาที่มันและเลือก" ตั้งเป็นหน้าเริ่มต้น "นี้แก้ไขปัญหาของฉัน (ซึ่ง ฟังดูคล้ายกับของคุณมาก) นี่เป็น Visual Studio 2012 Professional และฉันใช้มันใน Firefox


17

ลองเพิ่มการตั้งค่าต่อไปนี้ในweb.configไฟล์

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

2
HTTP Error 500.22 - ข้อผิดพลาดเซิร์ฟเวอร์ภายใน
Bryan Labuschagne

ปัญหาของฉันได้รับการแก้ไขหลังจากเพิ่มรหัสนี้ในไฟล์ webconfig ขอบคุณ
yadavr

17

ฉันเพิ่งวางโค้ดนี้ในไฟล์ web.config และแก้ไขข้อผิดพลาด

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

10

ฉันมีวิธีแก้ไขอย่างรวดเร็วหนึ่งข้อสำหรับเรื่องนี้ อันที่จริงฉันได้รับข้อผิดพลาดนี้เพราะฉันไม่ได้ตั้งหน้าเว็บเป็นหน้าเริ่มต้น เมื่อฉันทำหน้าเว็บของฉัน (html / aspx) ตามที่ตั้งไว้หน้าเริ่มต้นที่แสดงด้านล่างฉันได้รับการแก้ไขข้อผิดพลาดนี้ป้อนคำอธิบายรูปภาพที่นี่

ฉันไม่รู้ว่าโซลูชันนี้จะช่วยเหลือผู้อื่นหรือไม่


8

เทมเพลตเว็บไซต์เปล่าสร้างเว็บไซต์ ASP.NET ที่มีไฟล์ Web.config แต่ไม่มีไฟล์อื่น หมายความว่าคุณไม่มีหน้าเริ่มต้นที่จะแสดงในการเรียกดูหรือเรียกใช้

ข้อความแสดงข้อผิดพลาดนี้หมายความว่าคุณไม่ได้ตั้งค่าและกำหนดค่าเอกสารเริ่มต้นอย่างถูกต้องใน IIS ของคุณ

เมื่อกำหนดค่านี้แล้วข้อความแสดงข้อผิดพลาดจะหายไป


ฉันเพิ่มหน้าต้นแบบในเว็บไซต์เปล่าและเมื่อฉันคลิกเรียกใช้โดยไม่มีรหัสฉันยังพบข้อผิดพลาด ฉันไม่แน่ใจว่าสิ่งที่ฉันต้องทำเพื่อให้มันทำงานได้หรือไม่
Aindriu

คุณมีหน้าเริ่มต้นในเว็บไซต์ของคุณถ้าไม่แล้วสร้างและการตั้งค่าหน้าเริ่มต้นตามที่แสดงในลิงค์นี้iis.net/learn/web-hosting/web-server-for-shared-hosting/...
Sain Pradeep

ไม่ฉันไม่มีหน้าเริ่มต้นในเว็บไซต์เปล่า ฉันกำลังติดตามตัวอย่างในหนังสือ C # ฉันเพิ่มหน้าเริ่มต้นและหน้าจะโหลดในเว็บเบราว์เซอร์ ok แต่ตัวอย่างนี้ใช้เฉพาะมาสเตอร์เพจเท่านั้น ฉันไม่เข้าใจว่าทำไมมันไม่ทำงาน มันเป็นตัวอย่างที่ง่ายมาก
Aindriu

8

บนไซต์ใน IIS:

  1. เลือก 'การตั้งค่าขั้นสูง'
  2. จากนั้นสำหรับกลุ่มแอปพลิเคชันให้เลือก "ASP.NET v4.0"

ภาพตัวอย่างเช่น


2
นี่ไม่ได้ตอบคำถามของ OP การเปลี่ยนกลุ่มแอพลิเคชันที่ใช้โดยไซต์ใน IIS ไม่มีผลกระทบใด ๆ กับวิธีการกำหนดค่าไซต์เพื่อแสดงรายการเนื้อหาไดเรกทอรี (หรือไม่แสดงรายการ) สิ่งนี้ต้องทำแทนการกำหนดค่าในไฟล์ web.config
JNYRanger

8

แผงควบคุม> เปิดหรือปิดคุณสมบัติ Windows

บริการข้อมูลทางอินเทอร์เน็ต> บริการเวิลด์ไวด์เว็บ> คุณสมบัติการพัฒนาแอปพลิเคชัน

เปิดใช้งานทั้งสองตัวเลือก

.NET Extensibility 3.5
.ASP.NET 3.5

ภายใต้ ป้อนคำอธิบายรูปภาพที่นี่


6

ปัญหา

ข้อผิดพลาด: 403.13 เมื่อเรียกใช้เว็บไซต์ ASP.Net ของ WebForms จาก Visual Studio

สารละลาย

การเข้าถึงรูทถูกปฏิเสธ: http: // localhost: 51365

นำทางไปยังหน้าเข้าสู่ระบบหรือหน้าใด ๆ ที่มีอยู่และมันจะทำงาน:

http: // localhost: 51365 / Login.aspx


5

สำหรับกรณีของฉันฉันได้รับข้อผิดพลาดเดียวกันหลังจากสร้างโครงการ Web Api ที่ว่างเปล่า

ฉันแก้ไขได้โดยแก้ไขRouteConfig.csในโฟลเดอร์App_Start :)

ฉันแทนที่บรรทัดของการอ่านรหัส: -

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

มีดังต่อไปนี้: -

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

สังเกตุฉันต้องระบุคอนโทรลเลอร์ที่มีการกระทำดรรชนีที่ฉันต้องการเรียกใช้ก่อน

การตอบสนองทั้งหมดข้างต้นไม่ได้แก้ปัญหากรณีของฉัน (ตามที่ฉันต้องการ) เช่น

  • การเปิดใช้งานการสืบค้นไดเรกทอรีจากweb.configแสดงรายการไฟล์และโฟลเดอร์ทั้งหมดในโครงการของฉันเหมือนที่ php ทำเมื่อคุณไม่มีไฟล์ดัชนี
  • การตั้งค่าdefaultDocumentไม่ทำงานสำหรับฉันอย่างใดยังคงมีข้อผิดพลาด HTTP 403.14 (ยังไม่รู้ว่าทำไม)

หากอาจมีใครในสถานการณ์ที่คล้ายกันเป็นของฉันให้ลองทำดู


นี่เป็นคำตอบส่วนใหญ่ที่ฉันต้องการ อย่างไรก็ตามชื่อคอนโทรลเลอร์ต้องตรงกับสิ่งที่สร้างขึ้นสำหรับชื่อแอปพลิเคชัน MVC (ถ้าคุณเรียกคอนโทรลเลอร์ของคุณว่า IndexController มันจะใช้งานได้) - ดังนั้นชื่อแอคชั่นเริ่มต้นบนคอนโทรลเลอร์ควรเป็นดัชนี การใช้การเรียกดูไดเรกทอรีไม่ใช่ความคิดที่ดีในความคิดของฉันเพราะช่วยให้ทุกคนสามารถสำรวจเนื้อหาไซต์ของคุณได้อย่างครบถ้วน
Mark W. Mitchell

4

ฉันได้รับข้อผิดพลาดนี้และเปลี่ยนโหมดไปป์ของ Application Pool Managed Pipeline เป็น "Integrated" เพื่อแก้ปัญหา

ที่มา: การเรียกใช้โปรแกรมประยุกต์. NET 4.6 MVC บน IIS 8.5 (Windows Server 2012)


โพสต์นั้นไม่ได้ตอบคำถามนี้จริง ๆ เพราะมันคล้ายกับวิธีอื่น ๆ
rickvdbosch

4

ในกรณีของฉันฉันพบข้อผิดพลาดนี้เนื่องจาก webapp ของฉันคือ. NET v4 และพูลแอปพลิเคชันได้รับการกำหนดค่าสำหรับ. NET v2

ดับเบิลคลิกที่กลุ่มแอพพลิเคชั่นจะมีหน้าต่างป็อปอัพขึ้นมาซึ่งเราสามารถเลือก. NET Framework เวอร์ชั่นที่ต้องการ


4

แก้ไขแล้ว
ค้นหา"Windows Feature"เมื่อเริ่ม ->
คลิก"turn features on and off"->
ขยาย"Internet Information Services"และ
ตรวจสอบทุกโปรแกรมในทุกโฟลเดอร์ย่อยและ
คลิก "ตกลง"
สิ่งนี้จะแก้ไขปัญหาทั้งหมดของคุณ ป้อนคำอธิบายรูปภาพที่นี่


3

ฉันแก้ไขปัญหาด้วยการรกร้างขั้นตอนนี้ =>

  1. เปิดตัวจัดการ IIS
  2. คลิกแอปพลิเคชัน
  3. คลิกการเรียกดูไดเรกทอรี
  4. คลิก Open Feature (ทางด้านขวาคุณจะเห็นใต้ Actions)
  5. คลิกเปิดใช้งาน

2

ซึ่งอาจเกิดจากรายการ bum applicationhost.config

หยุด IIS Express หากทำงานอยู่ (คลิกขวาที่ไอคอน scroll-thingy สีฟ้าอ่อนใน Windows System Tray; Exit)

ไปที่คุณสมบัติของโครงการ> เว็บและตรวจสอบว่า URL โครงการถูกต้อง ในกรณีที่เป็น URL url ตรวจสอบให้แน่ใจว่ามีหมายเลขพอร์ตในช่วงที่ถูกต้อง URL ที่ถูกต้องอาจเป็น: https://localhost:44300/. ตอนนี้กดปุ่ม "สร้างไดเรกทอรีเสมือน" - ถัดจาก URL นี่เป็นการเพิ่มรายการใหม่ให้กับ applicationhost.config

เริ่มโครงการอีกครั้งและหวังว่าคุณจะไม่ได้รับข้อผิดพลาดอีกต่อไป


2

ฉันแน่ใจว่าหลังจากปีคุณอาจมีคำตอบแล้ว แต่ในกรณีที่คนอื่นกำลังมองหาคำตอบในอนาคต

สำหรับปัญหาของฉันฉันไม่ต้องทำอะไรกับเว็บกำหนดค่า ฉันไม่คิดว่าฉันจะต้องทำตามที่เคยทำมาก่อน

ตรวจสอบให้แน่ใจว่าไม่มีชื่อโฟลเดอร์เหมือนกับหน้าของคุณฉันมีโฟลเดอร์ชื่อ "บล็อก" และหน้าชื่อ "blog.aspx" มันพยายามโหลดโฟลเดอร์ฉันสังเกตเห็นสิ่งนี้ในลิงก์เปลี่ยนโฟลเดอร์เป็นบล็อกเนื้อหา ตอนนี้มันโหลดได้ดี

ฉันโพสต์สำเนาไว้ที่นี่เนื่องจากคุณเป็นคนแรกในคำค้นหา


2

ปัญหาอาจมาจากการเรียกใช้โครงการจาก visual studio บน IIS ในขณะที่เปิดแท็บผิดบน Visual Studio ดังนั้นวิธีแก้ไขคือเปิดแท็บที่ถูกต้อง (เว็บฟอร์มที่คุณต้องการทดสอบบนเบราว์เซอร์ของคุณ) หรือตามที่คนอื่น ๆ แนะนำใน คำตอบอื่น ๆ คลิกขวาที่เว็บฟอร์มที่คุณต้องการตั้งเป็นหน้าแรกจากนั้นคลิกที่ 'ตั้งค่าเป็นหน้าเริ่มต้น'



1

คลิกขวาที่โครงการของคุณใน solution explorer จากนั้นคลิกเพิ่มรายการใหม่เพิ่มเพจ HTML และตั้งชื่อเป็น index.HTML หลังจากรันแอปพลิเคชันของคุณอีกครั้ง


1

ในกรณีของฉัน

ใน Application Pool i ตั้งค่า. NetFrameWork เวอร์ชันเป็น V4.0 และแก้ไขปัญหา ...


1

คุณควรติดตั้งส่วนการพัฒนาแอปพลิเคชันของ IIS บนเซิร์ฟเวอร์ของคุณตามที่คุณเห็นในภาพนี้:ป้อนคำอธิบายรูปภาพที่นี่


0

สิ่งนี้อาจเกิดขึ้นได้จากหลายสาเหตุ หากคุณลองทำตามข้างต้นทั้งหมดและยังได้รับข้อผิดพลาดเดียวกันฉันมีวิธีแก้ไขปัญหาอีกหนึ่งข้อ

อีกสาเหตุที่อาจเกิดขึ้นคือ

  1. หากคุณมีรหัสฐานเดียวกันทำงานก่อนที่คุณจะเริ่มใช้งานโซลูชันใหม่คุณอาจพบข้อผิดพลาดนี้ สาเหตุคือ IIS Express พยายามรันบนพอร์ตเดียวกันกับโซลูชันเก่าซึ่งมีการลงทะเบียนเส้นทางกายภาพสำหรับ URL เริ่มต้นของแอปพลิเคชัน
  2. เนื่องจาก IIS ไม่สามารถหาเส้นทางฟิสิคัลเพื่อเรียกใช้โซลูชันจึงอาจไม่สามารถค้นหา DLLs ทั้งหมดที่จำเป็นในการเริ่มต้นแอปพลิเคชัน

Solutions:

  1. ลองเปลี่ยนพอร์ตแอปพลิเคชันเป็นค่าเริ่มต้น ตัวอย่างเช่นใช้http://localhost/แทนhttp://localhost:25836/

  2. ลองเปลี่ยนเป็นพอร์ตอื่นถ้าคุณใช้พอร์ตเริ่มต้นสำหรับแอปพลิเคชันก่อนหน้านี้ไปแล้ว เช่นhttp://localhost:25364/แทนhttp://localhost/

นี่จะช่วยให้ IIS / IIS Express ชี้ไปที่พา ธ bin เริ่มต้นของแอปพลิเคชันที่ใหม่กว่าที่คุณพยายามเรียกใช้ซึ่งจะมี DLLs ที่จำเป็นทั้งหมดเพื่อเริ่มแอปพลิเคชัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.