Hosting ASP.NET ใน IIS7 ให้ Access ถูกปฏิเสธ?


123

ฉันได้ติดตั้งแอปพลิเคชันใน IIS7 ที่ใช้. NET Framework 4.0 (ดำเนินการโดย NetworkService) แต่เมื่อเรียกดูไซต์ฉันได้รับสิ่งนี้:

การเข้าถึงถูกปฏิเสธ.
คำอธิบาย: เกิดข้อผิดพลาดขณะเข้าถึงทรัพยากรที่จำเป็นในการตอบสนองคำขอนี้ คุณอาจไม่มีสิทธิ์ดูทรัพยากรที่ร้องขอ
ข้อความแสดงข้อผิดพลาด 401.3: คุณไม่มีสิทธิ์ดูไดเร็กทอรีหรือเพจนี้โดยใช้ข้อมูลประจำตัวที่คุณให้มา (การเข้าถึงถูกปฏิเสธเนื่องจาก Access Control Lists) ขอให้ผู้ดูแลระบบของเว็บเซิร์ฟเวอร์อนุญาตให้คุณเข้าถึง *

ฉันได้พยายามให้สิทธิ์ NetworkService อย่างเต็มที่ในโฟลเดอร์ที่เก็บเว็บไซต์ (อันที่เว็บแอปพลิเคชันใน IIS ชี้ไปที่) แต่ฉันยังคงถูกปฏิเสธการเข้าถึง?

ทำไม?


คุณช่วยกรุณาดูได้ที่คำตอบของฉันในASP MVC ใน IIS 7 ผลลัพธ์ใน: ข้อผิดพลาด HTTP 403.14 - Forbidden
Murat Yıldız

คำตอบ:


271

ฉันให้สิทธิ์เข้าถึง"IIS_IUser"แต่ควรเป็น"IUSR"แทน ที่ช่วยแก้ปัญหา


นี่เป็นปัญหาของฉันเช่นกัน เป็นเรื่องตลกที่มีผู้ใช้หลายคน คุณยังมี IIS_IUSR (หรือนั่นคือสิ่งที่คุณหมายถึงกับ IIS_IUser?) และคุณยังสามารถเพิ่มพูลแอปพลิเคชัน
reaper_unique

2
สิ่งนี้จะต้องตรึงไว้ที่หน้าแรกที่พวกเขาแจกจ่าย IIS นั้น!
c00000fd

36
ไซต์> การรับรองความถูกต้อง> การรับรองความถูกต้องโดยไม่ระบุชื่อ> แก้ไข> ผู้ใช้เฉพาะ
Jonas

4
ทำงานอย่างมีเสน่ห์! เพิ่มสิทธิ์ใน IUSR คิดว่าคุณสมบัติของโฟลเดอร์ windows explorer แท็บความปลอดภัย
Filipe Borges

3
ฉันให้สิทธิ์การเข้าถึงทั้ง IIS_IUser และ IUSR ควบคุมทั้งหมดและใช้งานได้
Ronald Nsabiyera

167

สำหรับฉันไม่มีอะไรทำงานได้ยกเว้นสิ่งต่อไปนี้ซึ่งช่วยแก้ปัญหาได้: เปิด IIS เลือกไซต์เปิดการรับรองความถูกต้อง (ในส่วน IIS) คลิกขวาที่การรับรองความถูกต้องแบบไม่ระบุชื่อและเลือกแก้ไขเลือก Application Pool Identity


1
ดี ทำงานให้ฉันบน Win Server 2012 IIS 8 สำหรับเว็บไซต์ ASP Classic
Ben_Coding

สิ่งนี้ช่วยได้ .. แต่คุณต้องรีเซ็ตเซิร์ฟเวอร์ทั้งหมดเพื่อใช้การตั้งค่า .. พยายามรีเซ็ตทีละหน้าแล้วก็ไม่ได้ผล
sensei

ต้องทำสิ่งนี้สำหรับแอปพลิเคชันใหม่ภายในเว็บไซต์ที่มีอยู่ซึ่งกำหนดเป้าหมายไปยังรันไทม์. NET อื่นที่ให้ 401 แก่ฉันที่รากเอกสารของแอปพลิเคชัน (การเข้าถึงหน้า * .aspx ทำงานโดยตรงในขณะที่รูทเอกสารไม่ได้)
Matt Borja

ขอบคุณ ลองใช้งานครั้งแรก
GutierrezDev

ทำงานได้อย่างสมบูรณ์แบบหาก AppPool ของคุณทำงานเป็น NETWORK SERVICE
Serge Voloshenko

12

ฉันประสบปัญหาเดียวกันฉันเปิดใช้งาน "Anonymous Authentication" แต่ก็ยังใช้งานไม่ได้ ดังนั้นฉันจึงเปิดใช้ "Forms Authentication" จากนั้นก็ใช้งานได้โดยไม่มีปัญหาใด ๆ


สำหรับฉันเมื่อฉันเปิดใช้งานการรับรองความถูกต้องของ windows ใน IIS ตอนนี้ทำงานได้ดี ขอบคุณ
Singaravelan

4

ระบบปฏิบัติการ: Windows 7 & IIS 7

หากคุณยังคงได้รับอนุญาตถูกปฏิเสธหลังจากเพิ่ม IUSR & NETWORK SERVICE เพิ่ม IIS_WPG ด้วย การเพิ่มผู้ใช้คนสุดท้ายนี้ช่วยแก้ปัญหาของฉันได้

สำหรับผู้ที่ไม่พบผู้ใช้เหล่านั้น: เมื่อคุณพยายามเพิ่มผู้ใช้ในการรักษาความปลอดภัยของโฟลเดอร์ (คุณสมบัติของโฟลเดอร์) ให้คลิกที่ "ขั้นสูง" ของหน้าต่าง "เลือกผู้ใช้หรือกลุ่ม" เปลี่ยนตำแหน่งเป็นชื่อคอมพิวเตอร์จากนั้นคลิกที่ "ค้นหาเดี๋ยวนี้" คุณจะพบผู้ใช้เหล่านั้นในรายการด้านล่าง


ขอบคุณที่ได้ผลสำหรับฉัน! ฉันใช้ IIS_IUSRS บน windows server 2012 เนื่องจากไม่มี IIS_WPG ที่นั่น
Roman O

ฉันไม่เห็น IIS_WPG นี่คือสิ่งที่คุณสร้างขึ้นใช่ไหม
ชิงทรัพย์รับบี

4

หากคุณใช้การรับรองความถูกต้องแบบไม่ระบุชื่อ IIS 7 จะใช้บัญชี "IUSR" สำหรับการเข้าถึงไดเรกทอรี (เว้นแต่คุณจะตั้งค่าให้ใช้ข้อมูลประจำตัวของพูลแอปหากคุณไม่ได้ให้สิทธิ์ IUSR เพียงพอในโฟลเดอร์และไฟล์ของไซต์ของคุณ คุณจะได้รับข้อผิดพลาดนี้


3

สำหรับฉันใน windows 7 มันเริ่มทำงานเฉพาะหลังจากที่ฉันให้สิทธิ์ 'Read & execute', 'List folder contents', 'Read' ไปยังโฟลเดอร์ไซต์สำหรับผู้ใช้ทั้งสอง

  • IUSR
  • บริการเครือข่าย

สิทธิ์ IUSR สิทธิ์บริการเครือข่าย


วิธีนี้ใช้ได้ผลสำหรับฉันและไม่มีอะไรทำ! ขอบคุณ
Aimal Khan

3

พยายามแก้ปัญหาส่วนใหญ่ที่นี่ แต่โชคไม่ดี สิ่งที่ได้ผลสำหรับฉันคือการเพิ่ม "ทุกคน" ในสิทธิ์การรักษาความปลอดภัย คุณสมบัติ -> ความปลอดภัย -> แก้ไข -> เพิ่ม -> ทุกคน ค่าเริ่มต้นที่ระบุเพียงพอสำหรับฉันในการเข้าถึงอีกครั้ง

ในอนาคตอันใกล้นี้ฉันน่าจะคิดได้ว่าข้อมูลประจำตัวใดถูกส่งไปยังเซิร์ฟเวอร์เพื่อที่ฉันจะได้ให้สิทธิ์ที่เหมาะสม แต่ฉันหวังว่ามันจะช่วยใครสักคน!


2

การตรวจสอบ Application Pool Identity ใน Anonymous Authentication และการเปิดใช้งาน Forms Authentication จะช่วยแก้ปัญหาข้อผิดพลาดในการเข้าถึงถูกปฏิเสธ 😁


1

ในการตั้งค่าการตรวจสอบสิทธิ์สำหรับแอปเอง (ใน IIS) ให้ดูว่าคุณได้เปิดใช้งานแบบไม่ระบุตัวตนหรือไม่


1

เราจำเป็นต้องสร้างผู้ใช้ใหม่ ComputerName \ IUSR โดยไปที่โฟลเดอร์เว็บไซต์ -> Properties ---> Security ---> Edit -> เพิ่มและให้สิทธิ์ในการอ่าน นี้จะได้ผลแน่นอน

โซลูชันนี้ใช้สำหรับ IIS7


1

ฉันเดินวนไปวนมาและปรากฎว่าเป็นการตั้งค่าหน้าเริ่มต้นไม่ถูกต้อง หวังว่านี่จะช่วยให้คนอื่นหลีกเลี่ยงการเสียเวลาไปหนึ่งชั่วโมง


1

ในกรณีของฉันใช้ c: \ windows \ Microsoft.Net \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe / ฉันแก้ไขปัญหาการเข้าถึง 403 ที่ถูกปฏิเสธ


คุณคือ MVP ตัวจริง! ขอบคุณมาก! ช่วยให้ฉันปวดหัวมากขึ้นด้วยข้อผิดพลาดนี้!
XhensB

1

หลังจากคิดและลองผิดลองถูกมากมายฉันพบว่าข้อผิดพลาดนี้เกิดขึ้นเนื่องจากส่วนหนึ่งของweb.configของฉันถูกเข้ารหัสและด้วยเหตุผลบางประการคีย์จึงใช้ไม่ได้อีกต่อไป

การเข้ารหัสส่วนกำหนดค่าอีกครั้งช่วยแก้ปัญหาได้


0

เกิดจากปัญหาความปลอดภัยของไดเรกทอรี WWWRoot

วิธีแก้ไขง่ายๆคือเพียงแค่คัดลอกโฟลเดอร์แอปพลิเคชันไปยังไดรฟ์อื่นแทนที่จะเป็น "C: \ Inetpub \ wwwroot" แล้วสร้างไดเรกทอรีเสมือนสำหรับเส้นทางใหม่นี้ แค่นั้นแหละ.


0

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


0

นี่คือสิ่งที่เกิดขึ้นกับฉัน:

Get- Postก็โอเค ทำงานได้ดี

เมื่อฉันพยายามใช้Optionsคำกริยาเซิร์ฟเวอร์ส่งคืนข้อผิดพลาดเช่นนั้น

403

จากนั้นระวังurlScan

ฉันเพิ่มคำกริยา OPTIONS ในไฟล์. ini การกำหนดค่า urlscan แล้วทุกอย่างก็ทำงานได้ดี

หากต้องการตรวจสอบว่ามีการติดตั้ง urlscan ไว้หรือไม่ให้เปิดตัวจัดการ iis ของคุณและการISAPI FILTERSสแกน url ที่เปิดอยู่จะปรากฏในรายการ


0

ฉันก็ประสบปัญหาเดียวกันทุกอย่างเป็นเรื่องปกติสิทธิ์ทั้งหมดจะมอบให้กับผู้ใช้และสำหรับโฟลเดอร์เช่นกัน หลังจากการวิจัยมากมายฉันพบว่า wwwroot (โฟลเดอร์ซอร์สโค้ด) ถูกแชร์กับผู้ใช้รายอื่น ฉันหยุดแชร์แล้วและมันก็เหมือนมีเสน่ห์

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