IIS Express ให้ข้อผิดพลาด Access Denied เมื่อทำการดีบัก ASP.NET MVC


102

ฉันได้สร้างโครงการ ASP.NET MVC 3 แล้วและกำลังใช้ IIS Express เป็นเว็บเซิร์ฟเวอร์เมื่อทำการพัฒนา เมื่อฉันพยายามแก้ไขข้อบกพร่องฉันได้รับข้อความแสดงข้อผิดพลาดด้านล่าง

จะแก้ไขได้อย่างไร?

ผิดพลาดเซิร์ฟเวอร์ใน '/' แอพลิเคชัน.

การเข้าถึงถูกปฏิเสธ. คำอธิบาย: เกิดข้อผิดพลาดขณะเข้าถึงทรัพยากรที่จำเป็นในการตอบสนองคำขอนี้ เซิร์ฟเวอร์อาจไม่ได้รับการกำหนดค่าสำหรับการเข้าถึง URL ที่ร้องขอ

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

คำตอบ:


113

ถ้าคุณใช้ Visual Studio คุณยังสามารถคลิกซ้ายที่โปรเจ็กต์ในSolution Explorerและเปลี่ยนคุณสมบัติการพิสูจน์ตัวตนของ Windowsเป็นเปิดใช้งานในหน้าต่างคุณสมบัติ


99

สาเหตุหากมีปัญหานี้คือ IIS Express ไม่อนุญาตให้ใช้ WindowsAuthentication สามารถเปิดใช้งานได้โดยการตั้งค่า

<windowsAuthentication enabled="true">

ในไฟล์ applicationhost.config ที่ C: \ Users [ชื่อผู้ใช้] \ Documents \ IISExpress \ config


73

ฉันใช้คำตอบของ Jason แต่ต้องการชี้แจงวิธีเข้าสู่คุณสมบัติ

  1. เลือกโครงการใน Solution Explorer

ใส่คำอธิบายภาพที่นี่

  1. F4 เพื่อไปที่คุณสมบัติ (แตกต่างจากคุณสมบัติคลิกขวา)
  2. เปลี่ยนWindows Authenticationเป็นEnabled

ใส่คำอธิบายภาพที่นี่


18

การโฮสต์บน IIS Express: 1. คลิกที่โปรเจ็กต์ของคุณใน Solution Explorer เพื่อเลือกโปรเจ็กต์ 2. หากบานหน้าต่างคุณสมบัติไม่เปิดขึ้นให้เปิด (F4) 3. ในบานหน้าต่างคุณสมบัติสำหรับโปรเจ็กต์ของคุณ: a) ตั้งค่า "Anonymous Authentication" เป็น "Disabled" b) ตั้งค่า "Windows Authentication" เป็น "Enabled"


12

ในกรณีของฉันฉันต้องเปิดไฟล์:

C:\...\Documents\IISExpress\config\applicationhost.config

ฉันมีสิ่งนี้อยู่ในไฟล์:

  <authentication>
  <anonymousAuthentication enabled="true" User="" />

ฉันเพิ่งถอดUser=""ส่วนหนึ่งออก ฉันไม่รู้จริงๆว่าสิ่งนี้มาถึงที่นั่นได้อย่างไร ... :)

หมายเหตุ: ตรวจสอบให้แน่ใจว่าคุณมีสิ่งนี้ในตอนท้ายของapplicationhost.config:

   .
   .
   .
   <location path="MyCompany.MyProjectName.Web">
        <system.webServer>
            <security>
                <authentication>
                    <anonymousAuthentication enabled="true" />
                    <windowsAuthentication enabled="false" />
                </authentication>
            </security>
        </system.webServer>
    </location>
</configuration>

คุณอาจต้องการดูที่นี่: https://stackoverflow.com/a/10041779/114029

ตอนนี้ฉันสามารถเข้าถึงหน้าล็อกอินได้ตามที่คาดไว้


8

ในกรณีของฉันการเรียกใช้แอปของฉันก่อนหน้านี้จาก VS สงวน URL ฉันสามารถเห็นสิ่งนี้ได้โดยการเรียกใช้ในคอนโซล:

netsh http show urlacl

เพื่อลบการจองนี้ฉันรันสิ่งนี้ในคอนโซลที่ยกระดับ :

netsh http delete urlacl http://127.0.0.1:10002/

ผมพบว่าขั้นตอนเหล่านี้ที่นี่แก้ปัญหาของฉัน

ฉันใช้ VS2013



3

ฉันก็มีปัญหาเดียวกันและในที่สุดฉันก็เอาชนะมันได้

Solution Explorer→การRight click on project→การProperties→การWeb tab→การProject Url

ฉันเลือกหมายเลขพอร์ตอื่นและทุกอย่างก็เรียบร้อยดี!


1

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

วิธีแก้ไขปัญหาของฉัน:

ไปที่แผงควบคุม> เครือข่ายและอินเทอร์เน็ต> การเชื่อมต่อเครือข่าย

คลิกขวาที่การเชื่อมต่อเครือข่ายไร้สายรองที่คุณอาจมี (ของฉันชื่อ Wireless Network Connection 2) และคลิก 'Properties'

ไปที่แท็บ "การแบ่งปัน" ที่ด้านบน

ยกเลิกการเลือกช่องที่ระบุว่า "อนุญาตให้ผู้ใช้เครือข่ายอื่นเชื่อมต่อผ่านการเชื่อมต่ออินเทอร์เน็ตของคอมพิวเตอร์เครื่องนี้"

กดตกลง> จากนั้นนำไปใช้

หวังว่านี่จะช่วยได้!


1

ฉันเปิดไฟล์ web.config ของฉันและพบและลบส่วนนี้:

<authorization>
  <deny users="?" />
</authorization>

และไซต์ของฉันขึ้นมา แต่มีการตรวจสอบสิทธิ์ ..


0

ฉันเพิ่งแก้ไขปัญหาที่แน่นอนนี้ใน IIS EXPRESS ได้รับการแก้ไขโดยแก้ไขโฮสต์ของแอปพลิเคชัน. config ไปยังส่วนตำแหน่งเฉพาะด้านล่าง ฉันได้ตั้งค่าการรับรองความถูกต้องของ Windows ใน Visual Studio 2012 แต่เมื่อฉันเข้าสู่ XML จะมีลักษณะเช่นนี้

จำเป็นต้องเพิ่มแท็ก windows auth ด้านล่างตามที่แสดง

<windowsAuthentication enabled="true" />

<location path="MyApplicationbeingDebugged">
        ``<system.webServer>
            <security>
                <authentication>
                    <anonymousAuthentication enabled="false" />
                    <!-- INSERT TAG HERE --> 
                </authentication>
            </security>
        </system.webServer>
</location>

0

ฉันประสบปัญหานี้โดยพยายามสร้างแอปง่ายๆสำหรับ SharePoint โดยใช้ Provider Hosted

หลังจากผ่าน applicationhost.config ในส่วน basicAuthentication ถูกตั้งค่าเป็น false ฉันเปลี่ยนเป็นจริงเพื่อผ่าน 401.2 ในสถานการณ์ของฉัน มีลิงค์อื่น ๆ มากมายเกี่ยวกับวิธีค้นหา applicationhost.config สำหรับ IIS Express


0

ฉันไม่เห็นคำตอบที่ "สมบูรณ์" นี้เลย ฉันเพิ่งเห็นข้อมูลเกี่ยวกับการเปลี่ยนหมายเลขพอร์ตหลังจากโพสต์สิ่งนี้ดังนั้นฉัน

ตรวจสอบให้แน่ใจว่าในคุณสมบัติโปรเจ็กต์ของคุณใน Visual Studio นั้น url ของโปรเจ็กต์ไม่ได้ถูกกำหนดให้กับ url หรือพอร์ตเดียวกับที่ใช้ใน IIS สำหรับการเชื่อมโยงไซต์ใด ๆ

ฉันกำลังมองหา "ทำไม" สำหรับสิ่งนี้ แต่ข้อสันนิษฐานของฉันจากด้านบนของหัวคือ IIS express ของ IIS และ Visual Studio ใช้ไดเร็กทอรีเดียวกันเมื่อสร้างไดเรกทอรีเสมือนและ Visual Studio สามารถสร้างไดเร็กทอรีเสมือนใหม่เท่านั้นและไม่สามารถแก้ไขได้ สิ่งใด ๆ ที่ IIS สร้างขึ้นเมื่อใช้การเชื่อมโยงกับไซต์

อย่าลังเลที่จะแก้ไขฉันในเหตุผล


0

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

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


0

ในกรณีของฉัน (แอปพลิเคชัน ASP.NET MVC 4) Global.asaxไฟล์หายไป ปรากฏใน Solution explorer พร้อมกับเครื่องหมายตกใจ ฉันเปลี่ยนใหม่และข้อผิดพลาดก็หายไป

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