ปัญหาการอนุญาตกับไดเรกทอรีเสมือนไปยังเส้นทาง UNC


13

ฉันมีไดเรกทอรีเสมือนในเว็บไซต์ของฉัน (สภาพแวดล้อมการทดสอบ) มันเป็นส่วนแบ่ง UNC ซึ่งใช้เป็นสาธารณะ FTP

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

500 - "ไม่สามารถเริ่มการตรวจสอบการเปลี่ยนแปลงใน \ INTRANET \ FTP \ test \ web.config เนื่องจากการเข้าถึงถูกปฏิเสธ"

นี่คือ ASP.NET YSOD ฉันไม่แน่ใจว่าทำไม ASP.NET มีส่วนเกี่ยวข้องเลยเพราะเป็นไฟล์. jpg แบบคงที่ฉันขอ

ฉันพยายามเปิดการติดตามคำขอที่ล้มเหลวและนี่เป็นข้อผิดพลาดเฉพาะ:

  • ModuleName WindowsAuthentication
  • ประกาศ 2
  • HttpStatus 500
  • ข้อผิดพลาดเซิร์ฟเวอร์ภายใน HttpReason
  • HttpSubStatus 0
  • ErrorCode 0
  • ConfigExceptionInfo
  • การแจ้งเตือน AUTHENTICATE_REQUEST
  • ErrorCode การดำเนินการเสร็จสมบูรณ์ (0x0)

ถ้าฉันเปลี่ยน "ประเภทเส้นทางการเข้าสู่ระบบทางกายภาพ" จาก ClearText เป็นเครือข่าย ฉันได้รับข้อผิดพลาด IIS ต่อไปนี้:

HTTP Error 500.19 - เซิร์ฟเวอร์ภายใน

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

ข้อมูลข้อผิดพลาดโดยละเอียด

  • โมดูล IIS Web Core
  • ประกาศ BeginRequest
  • ตัวจัดการยังไม่ได้ตัดสินใจ
  • รหัสข้อผิดพลาด 0x80070005
  • ข้อผิดพลาดในการกำหนดค่าไม่สามารถอ่านไฟล์การกำหนดค่าได้เนื่องจากการอนุญาตไม่เพียงพอ
  • ไฟล์กำหนดค่า \\?\UNC\INTRANET\FTP\test\web.config
  • URL ที่ร้องขอ http://test.mydowmain.com:80/uploads/images/ca49acf6-6174-412e-8abd-59fab983e931.jpg

  • เส้นทางกายภาพ \\INTRANET\FTP\test\images\ca49acf6-6174-412e-8abd-59fab983e931.jpg

  • วิธีการเข้าสู่ระบบยังไม่ได้กำหนด

  • ผู้ใช้ที่เข้าสู่ระบบยังไม่ได้กำหนด
  • คำขอไดเรกทอรีติดตามการสืบค้นกลับล้มเหลว C:\inetpub\logs\FailedReqLogFiles

สิ่งนี้ไม่ได้สร้างบันทึกคำขอที่ล้มเหลวอย่างน่าประหลาดใจพอฉันได้ตั้งค่าการติดตามคำขอที่ล้มเหลวเพื่อติดตามข้อผิดพลาดด้วยรหัสข้อผิดพลาด 400-999

สิ่งที่ควรสังเกตก็คือถ้าฉันเปิดฟีเจอร์ Configuration จากภายใน IIS ฉันเห็นข้อผิดพลาดถูกปฏิเสธการเข้าถึง

ฉันมีการตั้งค่าเดียวกันบนเครื่อง dev ในพื้นที่ของฉันไปยังเส้นทาง UNC เดียวกันและผู้ใช้เดียวกันกับที่ใช้งานได้ เพียงแค่บนเซิร์ฟเวอร์ทดสอบมันไม่ได้

ผมทำอะไรผิดหรือเปล่า?

คำตอบ:


10

ความจริงที่ว่ามันเป็นแอพ ASP.net อาจเป็นสิ่งที่เป็นปัญหา รหัสประจำตัวกลุ่มแอปพลิเคชันของคุณต้องมีสิทธิ์ (ไม่จำเป็นต้องเป็นข้อมูลประจำตัว IIS โดยค่าเริ่มต้นข้อมูลประจำตัวกลุ่มแอพเป็นบัญชีบริการเครือข่ายท้องถิ่น) คุณอาจต้องเรียกใช้ caspol.exe บนเครื่อง IIS ของคุณ

http://msdn.microsoft.com/en-us/library/cb6t8dtz%28v=vs.80%29.aspx

http://learn.iis.net/page.aspx/50/aspnet-20-35-shared-hosting-configuration/

%windir%\Microsoft.NET\Framework\v2.0.50727\caspol -m -ag 1.  -url "file://\\remotefileserver\content$\*" FullTrust

7

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


3
หลังจากใช้เวลา 5 ชั่วโมงและค้นหาทางออกในที่สุดโซลูชันของ IT Action ก็ทำงานให้ฉัน ดังนั้นฉันจึงสร้างผู้ใช้รายเดียวกันบนเครื่องทั้งสองจากนั้นตั้งค่ากลุ่มแอพพลิเคชั่นให้ทำงานโดยใช้บัญชีนั้น ฉันกำลังจะคลั่งไคล้ แก้ไขได้ในที่สุด หวังว่าสิ่งนี้จะช่วยให้ทุกคนมีปัญหาเดียวกัน

+1 ขนาดใหญ่ ฉันอยู่ในเรือลำเดียวกันกับ @ user249232 - การสร้างบัญชีมิเรอร์บนเครื่อง IIS แก้ไขปัญหาได้ทันทีหลังจากค้นหามาก อย่างไรก็ตามฉันตั้งค่าผู้ใช้โดย 'เชื่อมต่อเป็น' ในการตั้งค่าพื้นฐานของไซต์ไม่ใช่โดยการเปลี่ยนรหัสกลุ่มแอพ
Scruffy

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

หลังจากใช้จ่าย 2 วัน สิ่งนี้ใช้ได้สำหรับฉัน แม้ว่าฉันจะพยายามรับรองเหมือนกัน แต่มันก็ไม่ทำงาน ในที่สุดมันก็ทำงานได้หลังจากที่ย้ายผู้ใช้ทั่วไปในกลุ่มผู้ดูแลระบบ
Ketan Kotak

2

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


1

คุณอาจตรวจสอบเพื่อให้แน่ใจว่าบัญชีที่ IIS กำลังทำงานอยู่มีสิทธิ์ที่เหมาะสม / จำเป็นสำหรับ UNC ที่มีปัญหา


3
หากนี่ไม่ใช่แอป ASP.net คุณจะได้รับเงิน เนื่องจากมันทำงานในกลุ่มแอปพลิเคชันจึงเป็นข้อมูลประจำตัวของกลุ่มแอพที่ต้องการเข้าถึงไม่ใช่บัญชีผู้ใช้ IIS
mfinni

1

ฉันมีปัญหาเดียวกันใน IIS 7.5 ฉันพบวิธีแก้ปัญหา:

  1. สร้างผู้ใช้ท้องถิ่นบนเซิร์ฟเวอร์ด้วยการแชร์
  2. สร้างเครือข่ายแชร์ให้ผู้ใช้สร้างในขั้นตอนที่ 1 สิทธิ์ที่ต้องการ Windows จะตั้งค่าการอนุญาตสำหรับผู้ใช้ที่คุณระบุ
  3. ไปที่ไดเรกทอรีเสมือนบน IIS และเปิด "การตั้งค่าขั้นสูง"
  4. ป้อน URL ในเส้นทางกายภาพสำหรับเครือข่ายที่ใช้ร่วมกันเป็น \\<servername>\<sharename>
  5. คลิกในข้อมูลประจำตัวเส้นทางกายภาพ เพิ่มข้อมูลรับรองสำหรับผู้ใช้ที่สร้างในขั้นตอนที่ 1

0

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

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

หวังว่าจะช่วยใครซักคน

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