ตัวจัดการ“ ExtensionlessUrlHandler-Integrated-4.0” มีโมดูลที่ไม่ดี“ ManagedPipelineHandler” ในรายการโมดูล


252

ความจริงแล้วฉันได้ลองเปลี่ยนเล่ห์เหลี่ยมสกปรกบน IIS และเมื่อฉันคิดว่าฉันจะหลบไปกับมันฉันรู้ว่าวิธีแก้ปัญหาของฉันไม่ทำงาน นี่คือสิ่งที่ฉันพยายามทำ:

1) ฉันมีแอพพลิเคชั่น ASP.NET ซึ่งมีคลาสPreloaderที่สืบทอดIProcessHostPreloadClientและทำการเริ่มต้นอย่างหนักทั้งหมดในการใช้วิธีPreload (แอพพลิเคชั่นมีความซับซ้อนและเป็นส่วนหนึ่งของระบบมหาศาลดังนั้นต้องใช้เวลาประมาณ 2 นาทีในการสร้างการเชื่อมต่อ บริการและยกตัวอย่างการลงทะเบียน Unity ล่วงหน้าบางส่วน)

2) ฉันมีจำนวนมากของการทำงานที่จะต้องทำในปิดโปรแกรม (ยกเลิกการถอด, กำจัด, ... ) และผมคิดว่าสถานที่ที่ดีที่สุดที่จะทำมันอยู่ใน * * * * * * * * วิธีการ Application_End อยู่ในGlobal.asax

3) ทุกอย่างใช้งานได้ดีเมื่อฉันมีกิจกรรมของผู้ใช้ (คำขอแรกหลังจาก Application Pool ที่มีเว็บแอ็พพลิเคชันดังกล่าวเริ่มต้นขึ้นจะทำให้ * Application_Start * ถูกเรียกและหลังจากนั้น * Application_End * ถูกเรียกใช้ใน Application Pool หยุดหรือรีไซเคิล) เกิดขึ้นเมื่อไม่มีกิจกรรมของผู้ใช้และแอปพลิเคชันพยายามรีสตาร์ทตัวเองหลังจากใช้งานเป็นเวลา 48 ชั่วโมง (ข้อกำหนดที่กำหนดค่าไว้) เนื่องจากไม่มีคำขอแอปพลิเคชันจึงไม่เริ่มต้นอย่างเป็นทางการ ดังนั้นมันไม่สามารถหยุดได้อย่างสวยงามเนื่องจาก * Application_End * จะไม่ถูกเรียกใช้

4) ส่วนที่ยุ่งเหยิงมาแล้ว ... ฉันได้พยายามขอ GET จากรหัสที่ส่วนท้ายของวิธีPreloadและใช้งานได้ แต่วิธีนี้ดูเหมือนจะไม่ดีสำหรับฉันแม้ว่ามันจะใช้งานได้ ดังนั้นฉันลองหลายสิ่งหลายอย่างและสิ่งสุดท้ายที่ฉันลองทำคือ:

SimpleWorkerRequest swr = new SimpleWorkerRequest(string.Empty, string.Empty, tw);
HttpRuntime.ProcessRequest(swr);

... และนั่นก็เป็นไปตามวัตถุประสงค์ * Application_Start * ถูกเรียก (ฉันตรวจสอบการตอบกลับแล้วมันมีหน้าล็อกอินที่ควรแสดงในคำขอเริ่มต้น) และในแอปพลิเคชันการปิดระบบ Application Pool สิ้นสุดลงอย่างสง่างามโดยทำงานที่จำเป็นใน * Application_End *

แต่

หลังจากที่แอปพลิเคชันเริ่มต้น (โหลดล่วงหน้าและเริ่มต้น) ในลักษณะนี้นี่คือสิ่งที่เกิดขึ้นเมื่อฉันต้องการเข้าถึงแอปพลิเคชันผ่านเว็บเบราว์เซอร์:

HTTP Error 500.21 - ตัวจัดการข้อผิดพลาดเซิร์ฟเวอร์ภายใน "ExtensionlessUrlHandler-Integrated-4.0" มีโมดูล "ManagedPipelineHandler" ที่ไม่ดีในรายการโมดูล

ฉันไม่สามารถเข้าใจสิ่งนี้ได้ ใครสามารถบอกฉันได้ว่าทำไมสิ่งนี้ถึงเกิดขึ้นและจะแก้ไขได้อย่างไร

หากฉันไม่เข้าใจปัญหานี้ฉันจะกลับไปที่โซลูชันแรก (ส่งคำขอ GET จากรหัส) แต่ปัญหานี้จะทำให้ฉันผิดเพราะฉันไม่มีความคิดที่ผิด


คุณใช้ IIS เวอร์ชันใด
chue x

IIS 7.5 (7.5.7600.16385)
Ivan Peric

ไม่ใช่คำตอบสำหรับคำถามของคุณโดยตรง แต่สำหรับผู้ใช้รายอื่นที่มีปัญหาคล้ายกันและมีปัญหาคุณมีแอปพลิเคชั่นที่ใช้อินเทอร์เน็ต: คุณสามารถใช้บริการภายนอกเช่นuptimerobot.comเพื่อสัมผัสแอปพลิเคชันของคุณทุกครั้งที่ X คุณทำให้แอปของคุณอยู่ในสถานะทำงาน + คุณได้รับประโยชน์เพิ่มเติมจากบริการ (สถานะการแจ้งเตือน ฯลฯ )
qbantek

@qbantek แม้ว่าแอปพลิเคชันที่ฉันทำงานอยู่นั้นไม่ได้เชื่อมต่ออินเทอร์เน็ต แต่คุณก็ให้แนวคิดที่ดี ฉันสามารถใช้ load balancer ทำการสัมผัสเป็นระยะโดยตั้งค่าประเภทการตรวจสอบสถานะสุขภาพเป็น Simple HTTP GET ขอบคุณ
Ivan Peric

คำตอบ:


24

ปัญหา

คุณกำลังใช้SimpleWorkerRequestในสถานการณ์ที่ไม่ได้ออกแบบมา คุณจะใช้มันภายในของ IIS หากคุณดูที่ลิงก์ MSDN ก่อนหน้า (สิ่งสำคัญคือของฉัน):

มีการดำเนินงานที่เรียบง่ายของระดับนามธรรม HttpWorkerRequest ที่สามารถใช้ในการเป็นเจ้าภาพโปรแกรมประยุกต์ ASP.NET นอกการประยุกต์ใช้บริการข้อมูลทางอินเทอร์เน็ต คุณสามารถใช้ SimpleWorkerRequest โดยตรงหรือขยายได้

นอกจากนี้หากคุณดูที่เอกสาร MSDN สำหรับSystem.Web.Hosting namespace ( SimpleWorkerRequestอยู่ใน namespace นี้) คุณจะเห็นสิ่งที่คล้ายกับข้างต้น (เน้นอีกครั้งคือของฉัน):

namespace ที่ System.Web.Hosting มีฟังก์ชันสำหรับการเป็นเจ้าภาพโปรแกรมประยุกต์ ASP.NET จากการใช้งานการจัดการนอก Microsoft Internet Information Services (IIS)

การแก้ไขปัญหา

SimpleWorkerRequestฉันจะแนะนำให้คุณลบการเรียกร้องให้ แต่คุณสามารถใช้โซลูชัน Microsoft เพื่อให้แน่ใจว่าเว็บไซต์ของคุณเริ่มต้นโดยอัตโนมัติหลังจากที่รีไซเคิล สิ่งที่คุณต้องเป็นไมโครซอฟท์แอพลิเคชันการเริ่มต้นโมดูลสำหรับ IIS 7.5 การกำหนดค่าไม่ซับซ้อน แต่คุณต้องเข้าใจตัวเลือกที่แน่นอน นี่คือเหตุผลที่ฉันจะแนะนำApplication Initialization UI สำหรับ IIS 7.5ด้วย UI ถูกเขียนโดย Blogger MSDN

ดังนั้นโซลูชัน Microsoft ทำอะไรกันแน่ มันทำสิ่งที่คุณพยายามทำ - IIS จะส่งคำขอ "รับ" ไปยังเว็บไซต์ของคุณหลังจากที่เริ่มต้นกลุ่มแอปพลิเคชัน


2
ฉันกำลังหาวิธีแก้ไขปัญหาที่สามารถนำไปใช้ในโค้ดได้ แต่นี่ก็ใกล้เคียงกับ "ดีพอ" ตามที่ได้รับดังนั้นฉันจึงตัดสินรางวัลที่ได้รับ แต่ฉันเดาว่าโซลูชันของ @danijelk ที่ให้ไว้จะมีประโยชน์มากที่สุดสำหรับคนส่วนใหญ่ที่เจอคำถามนี้ด้วยเหตุผลอื่นนอกเหนือจากที่ฉันระบุ ดังนั้นนี่คือบันทึกสำหรับพวกเขาที่จะดู
Ivan Peric

650

พยายามที่จะลงทะเบียนใหม่ ASP.NET aspnet_regiis -iกับ มันใช้งานได้สำหรับฉัน

เส้นทางที่เป็นไปได้สำหรับ. NET 4 (จากพรอมต์คำสั่งยกระดับ):

c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

http://forums.iis.net/p/1190643/2026401.aspx


ขอบคุณสำหรับคำตอบ. ฉันได้ลองแล้วและมันไม่ทำงาน :( - -
Osama khodrog

8
ใช้ไม่ได้กับ Windows Server 2012 อ่านโพสต์ของ Zach ในหน้านี้
Ivan Akcheurov

ขอบคุณ ทำงานให้ฉันทำสิ่งนี้บนเครื่องเสมือนใน Azure สิ่งที่ฉันอยากรู้ว่าทำไมฉันต้องทำสิ่งนี้ในการติดตั้งใหม่ ASPNET จะลงทะเบียนตัวเองเมื่อติดตั้งใช่ไหม? ฉันเดาว่ามันมีบางอย่างเกี่ยวกับลำดับการติดตั้ง
David Bridge

4
หากคุณกำลังใช้. NET 4.5.x หรือ 4.6.x อย่าหลงกลโดยคำตอบที่กล่าวถึง 4.0 และคิดว่ามันไม่เหมาะกับคุณ ปัญหานี้อาจเกี่ยวข้องกับลำดับของการติดตั้ง. NET ก่อน IIS เช่นเดียวกับฉัน การเรียกใช้คำสั่ง (ในกรณีของฉันรุ่น 64 บิต) แก้ไขได้แม้ว่าแอปพลิเคชันของฉันใช้. NET 4.5.2
Coxy

windows 2008, ไมโครไซต์ติดตั้งใหม่ของ AWS ต้องการให้ฉันเรียกใช้คำสั่งนี้ .. เพียงแค่สำหรับพวกเราที่คิดว่ามันไม่เกี่ยวข้องกับระบบของพวกเขา
terary

170

หากคุณพบข้อผิดพลาดกับ Windows 8 / Windows Server 2012 และ. Net 4.5 ให้ทำตามคำแนะนำเหล่านี้ที่นี่: http://www.britishdeveloper.co.uk/2013/01/handler-extensionlessurlhandler.html

ไปที่"เปิดหรือปิดคุณสมบัติ Windows" จากนั้นให้บริการข้อมูลอินเทอร์เน็ตจากนั้นให้บริการเวิลด์ไวด์เว็บจากนั้นจึงใช้คุณสมบัติการพัฒนาแอปพลิเคชันแล้วเปิดใช้งาน ASP.NET 4.5

สิ่งนี้ใช้ได้สำหรับฉัน (แม้ว่าตัวช่วยสร้างและข้อความต่างกันเล็กน้อยใน Windows Server 2012 แต่คุณจะเข้าใจ) ด้วยเหตุนี้จึงมีความจำเป็นว่าทำไมจึงมีความจำเป็นหลังจากติดตั้งทุกสิ่งผ่าน Web Platform Installer รวมถึงการพึ่งพาทั้งหมดที่อยู่นอกเหนือฉัน ...


3
การกำหนดค่า Windows Server เป็น PITA ทำไมไม่มีระบบจัดการแพ็คเกจกลาง
Kugel

หากคุณติดตั้ง iis กับแพลตฟอร์มเว็บตรวจสอบความคิดเห็นของ Virgo139 มันจะช่วยแก้ปัญหาของฉันได้อย่างง่ายดาย
castors33

นี่คือการแก้ไขสำหรับฉันใน Windows 10 Pro build 1607, ไชโย!
Apogee

การแก้ไขนี้สำหรับฉันใน WIndows 10 เช่นกัน น่าสังเกตว่าการแก้ไขบรรทัดคำสั่งทั่วไป (aspnet_regiis.exe -i) ไม่ได้รับอนุญาตให้ใช้บน Windows 10
Nat Webb

โซลูชันที่ได้รับการยืนยันสำหรับ windows 10 Pro
Zoomzoom

59

แม้จะปฏิบัติตามคำแนะนำส่วนใหญ่ในหน้านี้แล้ว แต่ฉันยังคงพบปัญหาใน Windows Server 2012 การติดตั้ง. NET Extensibility 4.5 แก้ไขได้สำหรับฉัน:

Add Roles and Features > Server Roles > Web Server (IIS) > Web Server > Application Development > .NET Extensibility 4.5


2
ขอขอบคุณสำหรับการสะกดมันออกมาผมก็จ้องมองที่ Web Server -> Web Server -> ท่อเว็บเซิร์ฟเวอร์นานเกินไป ... :)
Gleno

2
อย่าลืมตรวจสอบบทบาทและคุณสมบัติ> บทบาทเซิร์ฟเวอร์> เว็บเซิร์ฟเวอร์ (IIS)> เว็บเซิร์ฟเวอร์> การพัฒนาแอปพลิเคชัน> ASP.NET 4.6 (หรือ 4.5 ขึ้นอยู่กับการตั้งค่าของคุณ)
Lionet Chen

1
ใช่แล้วเริ่มต้นบริการ IIS ทำงานให้ฉัน! ขอบคุณ +1
Rusty Nail

47

สำหรับWindows 10 / Windows Server 2016 ให้ใช้คำสั่งต่อไปนี้:

dism /online /enable-feature /featurename:IIS-ASPNET45 /all

คำตอบที่แนะนำaspnet_regiisไม่สามารถใช้ได้กับ Windows 10 (ผู้สร้างอัปเดตและใหม่กว่า) หรือ Windows Server 2016:

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -i
Microsoft (R) ASP.NET RegIIS รุ่น 4.0.30319.0
ยูทิลิตี้การจัดการเพื่อติดตั้งและถอนการติดตั้ง ASP.NET บนเครื่องท้องถิ่น
ลิขสิทธิ์ (C) Microsoft Corporation สงวนลิขสิทธิ์.
เริ่มการติดตั้ง ASP.NET (4.0.30319.0)
ตัวเลือกนี้ไม่รองรับในระบบปฏิบัติการเวอร์ชั่นนี้ ผู้ดูแลระบบควรติดตั้ง / ถอนการติดตั้ง ASP.NET 4.5 ด้วย IIS8 แทนโดยใช้กล่องโต้ตอบ "เปิด / ปิดคุณสมบัติ Windows" เครื่องมือจัดการเซิร์ฟเวอร์ตัวจัดการหรือเครื่องมือบรรทัดคำสั่ง dism.exe สำหรับรายละเอียดเพิ่มเติมโปรดดูที่http://go.microsoft.com/fwlink/?LinkID=216771
เสร็จสิ้นการติดตั้ง ASP.NET (4.0.30319.0)

น่าสนใจกล่องโต้ตอบ "เปิด / ปิดคุณสมบัติ Windows" ไม่อนุญาตให้ฉันเลิกเลือก. NET หรือ ASP.NET 4.6 และมีเพียงคำสั่ง DISM ด้านบนเท่านั้นที่ทำงานได้ ไม่แน่ใจว่าชื่อเพลงนั้นถูกต้องหรือไม่ แต่มันใช้ได้กับฉัน


การแก้ไขนี้สำหรับฉันฉันใช้ Windows 10 pro พร้อมกับการอัปเดตผู้สร้าง ขอบคุณ!
Samuel Poirier

คำตอบในตำนาน! ฉันต้องสร้างเว็บเซิร์ฟเวอร์ใหม่และไม่ได้อัปเดตสคริปต์ในอีกไม่กี่ปีข้างหน้าฉันได้เพิ่มคำสั่ง DISM นี้ลงในสคริปต์การจัดสรร VM ของฉันทำงานได้ดี
Chris Schaller

dism / online / enable-feature / featurename: IIS-ASPNET45 / ทั้งหมดทำงานให้ฉันใน Windows Server 2016
Syed Nasir Abbas

ขอบคุณคุณฉันยังมีงานทำ! ทำงาน :)
Scott

42

รันหนึ่งในคำสั่งเหล่านี้:

สำหรับระบบปฏิบัติการ Windows 32 บิต:

c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

สำหรับระบบปฏิบัติการ Windows 64 บิต:

c:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -I

ฉันสังเกตว่าเมื่อทำสิ่งนี้โฟลเดอร์ "aspnet_client" จะถูกเพิ่มไปยังเว็บไซต์ภายใต้ไดเรกทอรี Sites ของ IIS Connections
eaglei22

26

https://stackoverflow.com/a/13266763/1277458นี้ทำงานได้อย่างสมบูรณ์แบบ แต่ถ้าคุณมีระบบปฏิบัติการ 64 บิตให้ใช้ Framework64 แทน Framework ในพา ธ :

c:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

FWIW, Server 2012 R2 บอกว่าไม่รองรับตัวเลือกนี้และแนะนำให้ใช้กล่องโต้ตอบคุณสมบัติเพื่อเปิดใช้งาน ASP.NET 4.5
bvj

ใช่คำตอบของซัคครอบคลุมเรื่องนี้
Neshta

13

ในกรณีของฉัน (Windows 10 + IIS 10) ฉันต้องเปิด " เปิดหรือปิดคุณสมบัติ Windows " จากนั้นไปที่บริการข้อมูลทางอินเทอร์เน็ต> บริการเวิลด์ไวด์เว็บ> คุณสมบัติการพัฒนาแอปพลิเคชัน> และตรวจสอบASP.NET 4.6


1
Mine เป็น IIS บน Windows 2012 R2 เพิ่ม ASP.NET ที่เข้ากันได้ในตัวจัดการเซิร์ฟเวอร์> จัดการ> เพิ่มบทบาทและคุณสมบัติ> การติดตั้งตามบทบาทหรือตามคุณลักษณะ> (เลือกเซิร์ฟเวอร์ของคุณ)> เว็บเซิร์ฟเวอร์ (IIS)> เว็บเซิร์ฟเวอร์> การพัฒนาแอปพลิเคชัน> ASP.NET 4.5 ตามที่ @ArsmanAhmad กล่าวว่าการตรวจสอบมีสติที่ดีคือการตรวจสอบว่า App Pool .NET CLR เวอร์ชั่นของคุณถูกตั้งค่าเป็น v4.0
GBU

6

สร้างโพสต์ของตัวเองเพราะนี่ทำให้ฉันต้องใช้เวลาหลายชั่วโมง

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

ตามที่ผู้ใช้ ryan-anderson ข้างต้นระบุไว้คุณไม่สามารถป้อน. exe

สำหรับผู้ที่ไม่ค่อยสบายกับสิ่งนอก IIS บนเซิร์ฟเวอร์นี่คือสิ่งที่คุณทำในขั้นตอนง่าย ๆ

  1. ค้นหา aspnet_regiis ในโฟลเดอร์ที่คล้ายกับพา ธ นี้ C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \

  2. คลิกขวาที่พรอมต์คำสั่งในเมนูเริ่มหรือที่ใดก็ได้และบอกให้เรียกใช้ในฐานะผู้ดูแลระบบ การใช้คุณสมบัติ "เรียกใช้" ของ Windows ไม่สามารถใช้งานได้หรือไม่ได้ผลสำหรับฉัน

  3. กลับไปที่ปฏิบัติการ aspnet_regiis คลิกลากไปยังพรอมต์คำสั่งหรือคัดลอกที่อยู่ลงในพรอมต์คำสั่ง

  4. ลบหากอยู่ที่นั่นไฟล์. exe ท้ายที่สุด นี่คือกุญแจสำคัญ เพิ่ม -i (space ลบด้วยตา) ที่ท้าย เข้าสู่

หากคุณทำสิ่งนี้ถูกต้องคุณจะเห็นว่ามันเริ่มติดตั้ง asp.net แล้วบอกคุณว่ามันประสบความสำเร็จ


ทำงานอย่างสมบูรณ์แบบสำหรับฉัน ขอบคุณ.
Mike

5

ตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่าapplication-siteรุ่นของคุณจากv2.0เป็นv4.0ในตัวจัดการ IIS :

กลุ่มแอปพลิเคชัน> แอปพลิเคชันของคุณ> การตั้งค่าขั้นสูง>. NET Framework เวอร์ชัน

ASP.NETหลังจากที่ติดตั้งของคุณ

สำหรับระบบปฏิบัติการ 32 บิต (Windows):

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -i

สำหรับระบบปฏิบัติการ 64 บิต (Windows):

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -i

รีสตาร์ทของคุณapplication-siteในตัวจัดการ IIS และเพลิดเพลิน


ใช่ฉันพยายามอย่างดีที่สุดเพื่อให้คำตอบง่ายที่สุด ;-) @yuyangJian
Arsman Ahmad

4

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

ผู้ใช้ PowerShell สามารถพิมพ์ "Install-WindowsFeature Web-Asp-Net45"

นั่นควรจะเทียบเท่ากับการใช้ตัวจัดการเซิร์ฟเวอร์


4

ฉันถูกท้าทายด้วยข้อความแสดงข้อผิดพลาดเดียวกันโดยติดตั้ง. net 4.7

วิธีแก้ไขคือทำตามหนึ่งโพสต์ที่กล่าวถึงก่อนหน้าเพื่อไปกับ "เปิดหรือปิดคุณสมบัติ Windows" ซึ่ง ". NET Framework 4.7 Advanced Services" -> "ASP.NET 4.7" ได้ถูกตรวจสอบแล้ว

นอกจากนี้ยังมีรายการ "บริการข้อมูลทางอินเทอร์เน็ต" และคำบรรยายย่อ "คุณสมบัติการพัฒนาแอปพลิเคชัน" -> "ASP.NET 4.7" ซึ่งจำเป็นต้องตรวจสอบด้วย

เมื่อเปิดใช้งานคุณลักษณะนี้จะเปิดใช้งานคุณสมบัติอื่น ๆ ... ฉันกดปุ่มตกลงและปัญหาได้รับการแก้ไขแล้ว ไดอะล็อกคุณสมบัติหน้าต่างของ Screendump


ฉันควรเพิ่มว่านี่คือหน้าต่าง 10 โปรรุ่น
theodor.johannesen

2

ฉันกำลังทำงานบน Windows Server 2012 คุณลักษณะ. NET Extensibility 4.5 เปิดอยู่ WebDAV โมดูลถูกลบ ฉันยังคงได้รับข้อผิดพลาด 500.21 บนเส้นทาง ASP.NET '/ docs'

การเปลี่ยน 'skipManagedModules' เป็นเท็จแก้ไขปัญหาได้

<applicationInitialization doAppInitAfterRestart="true" skipManagedModules="false">
        <add initializationPage="/docs" />    
</applicationInitialization>

ขอบคุณhttps://groups.google.com/forum/#!topic/bonobo-git-server/GbdMXdDO4tI



1

ฉันพบปัญหานี้และพบว่าการลบโฟลเดอร์ต่อไปนี้ช่วยได้แม้ว่าจะไม่ใช่รุ่น Express ก็ตาม Express:

C:\Users\<user>\Documents\IISExpress


1

ข้อผิดพลาดนี้เริ่มเกิดขึ้นกับฉันเมื่อสัปดาห์ที่แล้วส่งผลกระทบต่อเว็บไซต์ที่มีอยู่ในเครื่องของฉัน ฉันไม่มีโชคเลยที่จะลองทำตามคำแนะนำที่นี่ ในที่สุดฉันก็ลบ WebDAV จาก IIS อย่างสมบูรณ์ (คุณสมบัติ Windows -> บริการข้อมูลทางอินเทอร์เน็ต -> บริการเวิลด์ไวด์เว็บ -> คุณสมบัติ HTTP ทั่วไป -> การเผยแพร่ WebDAV) ฉันทำการรีเซ็ต IIS หลังจากนี้เพื่อการวัดที่ดีและข้อผิดพลาดของฉันก็ถูกแก้ไขในที่สุด

ฉันสามารถเดาได้ว่าการอัพเดท Windows เริ่มต้นปัญหา แต่ไม่แน่ใจ


เพิ่งมีปัญหาเดียวกัน ติดตั้งโปรแกรมปรับปรุง windows บางตัวที่สลับการตั้งค่า IIS ของฉัน การปิดการเผยแพร่ WebDAV ได้รับการแก้ไขอีกครั้ง
ElliotSchmelliot

0

คุณสามารถแก้ไขได้โดยเปลี่ยนประเภท "ExtensionlessUrlHandler-Integrated-4.0" ใน iis เป็น System.Web.DefaultHttpHandler


0

สำหรับฉันการลบ WebDAV จากเซิร์ฟเวอร์ของฉันทำให้แอปพลิเคชันส่งคืน503 Service Unavailableข้อความแสดงข้อผิดพลาดเมื่อใช้งานPUTหรือDELETEดังนั้นฉันจึงติดตั้งใหม่อีกครั้ง ฉันยังพยายามลบ. NET Framework 4.5 ทั้งหมดและติดตั้งใหม่และลองลงทะเบียนอีกครั้งตามที่แนะนำ แต่ไม่มีประโยชน์

ผมสามารถที่จะแก้ไขปัญหานี้โดยการปิด WebDAV สำหรับแต่ละแอพลิเคชันนี้หยุดข้อผิดพลาด 'โมดูลเลว' เมื่อใช้หรือPUTDELETE

ปิดใช้งาน WebDAV สำหรับกลุ่มแอปแต่ละรายการ:

  1. คลิกกลุ่มแอปพลิเคชันที่ได้รับผลกระทบ
  2. ค้นหาWebDAV Authoring Toolsในรายการ
  3. คลิกเพื่อเปิด
  4. คลิกDisable WebDAVที่มุมขวาบน

Taaaaaa!

ฉันยังคงทิ้งรายการลบในweb.configไฟล์ของฉัน

 <system.webServer>
    <modules>
      <remove name="WebDAVModule"/>
    </modules>
    <handlers>
      <remove name="WebDAV" />
    </handlers>
 <system.webServer>

ลิงค์นี้เป็นที่ที่ฉันพบคำแนะนำ แต่มันไม่ชัดเจนมาก


0

อาจไม่ใช่โซลูชันที่มีประโยชน์สำหรับ OP แต่เกี่ยวข้องกับข้อความ "error" เดียวกัน

เรากำลังโฮสต์หน้า PHP บน IIS8.5 ที่มี. NET 4.5 ติดตั้งอย่างถูกต้อง

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

หลังจากนั้นไม่นานเราก็เริ่มได้รับข้อผิดพลาดนี้แบบสุ่ม

ใน web.config: ฉันใส่ skipManagedModules เป็นจริง -> อย่าทำอย่างนี้!

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
<applicationInitialization skipManagedModules="false" doAppInitAfterRestart="true">
  <add initializationPage="/" />
</applicationInitialization>
...

แม้ว่าเว็บไซต์จะเป็น php แต่การกำหนดเส้นทางไปยังการเพจจะจัดการโดยโมดูล !!!


0

ฉันเจอปัญหานี้ด้วย แอป MVC4 ของฉันทำงานบน Windows Server 2012 R2 ด้วย IIS 8.5 วิธีแก้ปัญหาที่โพสต์เหล่านี้ไม่เหมาะกับฉัน ... การติดตั้งเฟรมเวิร์กที่หายไปผ่านคุณสมบัติ IIS อาจแก้ไขได้ แต่การติดตั้งล้มเหลวเสมอ

ฉันต้องใช้Web Platform Installerและติดตั้งแพ็คเกจต่อไปนี้:

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


0

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

บนแผงควบคุมของผู้ให้บริการโฮสต์ฉันเปิดใช้งานการบันทึกข้อผิดพลาดสำหรับ IIS และ ASP.Net จากนั้นได้รับรู้ข้อผิดพลาดที่จริงโกหกใน cshtml ที่ขาดหายไป


0

การติดตั้ง. NET 4.7 นั้นใช้งานได้สำหรับฉัน ฉันเพิ่งติดตั้ง 3.5 ก่อนป้อนคำอธิบายรูปภาพที่นี่

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