IIS7 ส่งคืนค่าว่างเมื่อร้องขอเนื้อหาสแตติก


14

ฉันกำลังพยายามกำหนดค่าเครื่องสาธิตซึ่งเป็น EEEPC กับ Windows 7 Home Premium edition ไดรเวอร์ทั้งหมดโหลดอย่างถูกต้อง (อย่าถามฉันว่าทำไมถึงเป็น Home edition) ที่ติดตั้ง IIS7

ฉันปรับใช้แอพพลิเคชั่นเพื่อสาธิตบนเครื่องซึ่งเป็นเว็บไซต์ ASP.NET MVC, เพิ่มเว็บไซต์ผ่านทางคอนโซล, เพิ่มพูลแอพ แอพพูลรันเป็น NetworkService และแขกรับรองความถูกต้องเป็น IUSR

ฉันได้เพิ่มสิทธิ์การแก้ไข NetworkService และอ่าน & ดำเนินการสิทธิ์ใน IUSR ไปยังโฟลเดอร์ของเว็บไซต์และเนื้อหา

เมื่อฉันไปถึงรูทของเว็บให้พูดว่า http://example.com/ฉันได้รับ HTML ที่แสดงผลอย่างถูกต้องจากเว็บไซต์ (ซึ่งหมายถึงแอปพลิเคชันทำงาน) แต่ปัญหาคือเนื้อหาสแตติกทั้งหมดจะส่งคืนว่างเปล่า

ฉันไม่แน่ใจว่าทำไมสิ่งนี้เกิดขึ้น ไม่มีหน้าข้อผิดพลาด 404 หรือ 500 เพียงตอบสนองเปล่าเมื่อฉันเข้าถึงเนื้อหาคงที่ เนื้อหาที่สร้างจาก ASP.NET ทั้งหมดทำงานได้ดี (แม้ว่าจะแปลกเล็กน้อยเนื่องจาก CSS และรูปภาพทั้งหมดจะไม่โหลด)

โปรดช่วยด้วย IIS7 Management Console ทำให้ฉันสับสนมากและฉันต้องการเครื่องจักรในวันพรุ่งนี้

คำตอบ:


25

คุณเปิดคุณสมบัติสแตติกเนื้อหาหรือไม่

http://weblogs.asp.net/anasghanem/archive/2008/05/23/don-t-forget-to-check-quot-static-content-service-quot-in-iis7-installation.aspx


ที่นี่คือที่ที่จะหาตัวเลือก: ผู้จัดการเซิร์ฟเวอร์> บทบาท> เพิ่มบริการบทบาท คุณต้องทำเครื่องหมายที่ช่องถัดจากเนื้อหาแบบคงที่
John M

2

ในกรณีของฉันบทบาทเซิร์ฟเวอร์ได้รับการติดตั้งแล้ว แต่ตัวจัดการแบบคงที่ให้บริการหน้าว่างแม้สำหรับไซต์ทดสอบเล็ก ๆ น้อย ๆ ที่มีการแมปตัวจัดการเดียว

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

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

หากสิ่งนี้ยังคงไม่ช่วยสิ่งอื่นที่นำไปสู่หน้าว่างกำลังพยายามระบุเส้นทางในส่วน "ขอเส้นทาง" เช่นpublicหรืออาจจะpublic/*เป็น อันหลังนั้นผิดปกติในขณะที่อดีตควรได้รับการยอมรับ แต่ให้ผลลัพธ์ในหน้าว่างแทน วิธีแก้ไขคือการตัดการแมปตัวจัดการลงใน<location path='public'>ส่วนโดยระบุ*การตั้งค่า "เส้นทางที่ขอ" หรือในตัวจัดการ IIS ขยายไซต์และเลือกโฟลเดอร์ของคุณก่อนจากนั้นแก้ไขการแมปตัวจัดการ


1

ตามที่ @MattB แนะนำฉันไม่ได้เปิดใช้งานคุณสมบัติ "เนื้อหาแบบคงที่" แต่นั่นเป็นเพียงส่วนหนึ่งของปัญหา

ฉันได้เพิ่มคุณสมบัติ "เนื้อหาแบบคงที่" แต่ปัญหายังคงมีอยู่ดังนั้นฉันจะลบ MvcHttpHandler ที่เป็นค่าเริ่มต้นออกจากรายการตัวจัดการการแมปและอย่างใดปัญหาแก้ได้เอง ... ดังนั้นปัญหาก็คือ MvcHttpHandler สกัดกั้นคำขอก่อน StaticFileHandler,

FYI หลังจากติดตั้ง "เนื้อหาแบบคงที่" ก็ต้องแน่ใจว่า ...

  1. ใน Internet Information Services Manager คลิกเว็บไซต์ของคุณ
  2. คลิกสองครั้งที่คุณสมบัติ "ตัวจัดการแมป"
  3. ทางด้านขวามือ (แผงการกระทำ) คุณจะเห็นลิงค์ชื่อ "ดูรายการสั่งซื้อ ... " คลิกที่มัน
  4. จากนั้นคุณจะพบคำสั่งที่โมดูลนั้นถูกจับคู่กับแต่ละคำขอตรวจสอบให้แน่ใจว่าลำดับนั้นเหมาะสมแล้ว

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

หวังว่านี่จะช่วยให้บางคน googling สำหรับปัญหาเดียวกัน :-)

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