วิธีแก้ไข: ตัวจัดการ“ PageHandlerFactory-Integrated” มีโมดูล“ ManagedPipelineHandler” ที่ไม่ดีในรายการโมดูล


543

ฉันกำลังกำหนดค่าโครงการ MVC 3 เพื่อทำงานกับการติดตั้ง IIS ภายในและพบข้อผิดพลาด 500 ต่อไปนี้:

ตัวจัดการ "PageHandlerFactory-Integrated" มีโมดูล "ManagedPipelineHandler" ที่ไม่ดีในรายการโมดูล

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

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

ถ้าฉันใช้ระบบ 32 บิตมันก็จะเป็นดังนี้:

%windir%\Microsoft.NET\Framework\v4.0.21006\aspnet_regiis.exe -i

คำถามของฉันคือมีวิธีการติดตั้ง IIS บนกล่อง windows 7 เพื่อใช้. NET 4.0 (MVC 3) โดยไม่ต้องทำตามขั้นตอนพิเศษนี้หรือไม่?


2
คำถามแก้ปัญหาของฉันได้จริง ฉันจะตอบคำถามนี้เป็นคำตอบถ้าทำได้ :)
Seregwethrin

ใช่คำอธิบายของคำถามแก้ปัญหาของฉันด้วย ขอบคุณ :-)
sramsay

คำตอบ:


950

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

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

ถ้าฉันใช้ระบบ 32 บิตมันก็จะเป็นดังนี้:

%windir%\Microsoft.NET\Framework\v4.0.21006\aspnet_regiis.exe -i

จำให้เรียกใช้พรอมต์คำสั่งในฐานะผู้ดูแลระบบ ( CTRL+ SHIFT+ ENTER)


คุณอาจมี"Aspnet_regiis.exe ไม่ได้รับการยอมรับว่าเป็นคำสั่งภายในหรือภายนอก, โปรแกรมที่ทำงานได้หรือไฟล์แบตช์" ความผิดพลาด ในกรณีนี้คุณไม่สามารถเรียกใช้งานได้จากโฟลเดอร์. NET 4.0 แต่จาก 2.0 หนึ่งตัว (ดูคำตอบของฉันด้านล่าง)
Nikita G.

ในบางเว็บไซต์ฉันอ่านว่าเราจำเป็นต้องเรียกใช้ aspnet_regiis.exe แต่ไม่มีใครอธิบายว่าจำเป็นต้องใช้พารามิเตอร์หรือไม่เกิดอะไรขึ้น
Pimenta

คำตอบที่ง่ายมาก ฉันรู้ว่ามันเป็นการติดตั้งที่ไม่ดีไม่รู้วิธีแก้ไขให้ถูกต้อง
elcool

โปรดทราบว่าหากคุณใช้ Windows Server 2012 คุณจะต้องดำเนินการผ่านจัดการ> เพิ่มบทบาทและคุณสมบัติ> คุณสมบัติ ในกรณีของฉัน IIS8 จำเป็นต้องมี ASP.NET 4.5 ติดตั้ง / เปิดใช้งาน
สิ้นเชิง

5
อย่าลืมเรียกใช้ในฐานะผู้ดูแลระบบ
Reid Evans

17

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

หากต้องการแก้ไขให้ลองทำดังต่อไปนี้:

  1. ตรวจสอบให้แน่ใจว่าการติดตั้ง. NET 4.0 ของคุณไม่เสียหาย (เรียกใช้ตัวติดตั้งและ 'ซ่อมแซม') นอกจากนี้ยังมีโอกาสที่จะไม่ติดตั้งในเครื่องของคุณเลย

  2. หากคุณแน่ใจว่าคุณไม่ได้มี .NET 4.0 ติดตั้งและต้องการที่จะเรียกใช้เป็น NET 2.0 ลองนี้ :

หากคุณเห็นข้อความ "Aspnet_regiis.exe ไม่ได้รับการยอมรับว่าเป็นคำสั่งภายในหรือภายนอกโปรแกรมที่ทำงานได้หรือแบตช์ไฟล์" ให้สลับไปที่ C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Aspnet_regiis.exe -i ที่พรอมต์คำสั่ง


Aspnet_regiis.exe -i แก้ไขปัญหาของฉันใน Win Server 2008 IIS7
VSB


9

ข้อผิดพลาด: ตัวจัดการ“ PageHandlerFactory-Integrated” มีโมดูลที่ไม่ดี“ ManagedPipelineHandler” ในรายการโมดูล

ฉันพบบทความเพื่อแก้ไขปัญหานี้เพียงแค่เรียกใช้คำสั่งต่อไปนี้ที่พร้อมท์คำสั่ง:

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

หากระบบเป็น 32 บิตก็จะมีลักษณะเช่นนี้:

%windir%\Microsoft.NET\Framework\v4.0.21006\aspnet_regiis.exe -i

แต่เมื่อฉันพยายามรันคำสั่งเหล่านี้โดยใช้ command prompt ฉันได้รับข้อความแสดงข้อผิดพลาด / คำเตือนต่อไปนี้:

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

เพื่อแก้ไขปัญหานี้ใน Windows 8.1 ฉันขอแนะนำให้ทำสิ่งต่อไปนี้

สารละลาย:

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

สิ่งนี้ควรแก้ไขปัญหา


ผมมีปัญหาเดียวกัน. ขอบคุณ! สำหรับฉันฉันต้องเปิดใช้งาน "ASP.NET 4.6"
Jenny O'Reilly

4

ฉันจะตรวจสอบสิ่งที่ชัดเจนก่อน: ว่ากลุ่มแอพพลิเคชั่นถูกตั้งค่าเป็นเฟรมเวิร์กที่ถูกต้องและแอปพลิเคชัน IIS ของคุณชี้ไปที่โฟลเดอร์ที่คุณใส่ไฟล์ของคุณ


ชัดเจนมาก ... แต่มองข้ามไปได้ง่าย ขอบคุณ!
Paul Lemke

นี่เป็นปัญหาสำหรับฉัน เห็นได้ชัดว่าฉันยกเลิกการตั้งค่านี้หรือตั้งค่าเป็น "ไม่มีรหัสที่จัดการ" การสลับกลับไปเป็น v4.0 ทำให้ไซต์ของฉันโหลด
redOctober13

3

หากคุณต้องการที่จะปรับใช้แอพลิเคชัน MVC ไม่ต้องติดตั้ง MVC คุณสามารถปรับใช้ MVC DLL ของพร้อมกับใบสมัคร สิ่งนี้จะช่วยให้คุณติดตั้ง MVC 3 ได้คุณสามารถใช้ฟีเจอร์ในเนมสเปซ. Net 4.0 บางตัวได้โดยไม่ต้องติดตั้ง. Net โดยใช้วิธีการที่คล้ายกัน


4
การลงทะเบียน asp.net ด้วย iis ไม่มีส่วนเกี่ยวข้องกับ mvc อยู่หรือไม่ใช่คุณสามารถรวม DLLs ที่ต้องการในโฟลเดอร์ bin ของคุณได้ แต่ถ้า iis ไม่รู้จักไฟล์ asp มีไม่มากที่ dll สามารถทำได้
Shekhar

3

ฉันเพิ่มเส้นทาง ISAPI / CGI สำหรับ. Net 4. ซึ่งไม่ได้แก้ไขปัญหา ดังนั้นฉันจึงรันการซ่อมแซมในการติดตั้ง. Net V4 (ไคลเอ็นต์และขยาย) ซึ่งขอรีบูตเครื่อง สิ่งนี้แก้ไขได้สำหรับฉัน


2

ในการแก้ไขปัญหานี้ในเครื่องWindows 8.1 Professional ให้ทำดังต่อไปนี้

  1. ติดตั้ง Web Platform Installer http://www.microsoft.com/web/downloads/platform.aspx

  2. ใน Web Platform Installer ติดตั้งASP.NET 4.5 (คุณลักษณะนี้มีการขึ้นต่อกันที่หนึ่ง)

หากคุณลองใช้คำสั่ง cmd prompt จากคำตอบที่ได้รับความนิยมสูงสุดคุณจะได้รับข้อความแสดงข้อผิดพลาด / คำเตือนต่อไปนี้:

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


2

ฉันพยายามทำ aspnet_regiis ใน command prompt แต่ฉันได้รับคำตอบว่าฉันไม่มีสิทธิ์ของผู้ดูแลระบบ จากนั้นหลังจาก googling เพิ่มเติมและหาทางออกฉันพยายามคลิกขวา cmd และเรียกใช้ในฐานะผู้ดูแลระบบ ยืนยันว่าใช่เมื่อกล่องโต้ตอบปรากฏขึ้นวิ่ง aspnet_iis อีกครั้งมดทำงานเหมือนมีเสน่ห์ ในระยะสั้น: 1. ตรวจสอบกรอบงาน. NET ใน app_pool 2. เรียกใช้ cmd ในฐานะผู้ดูแลระบบ 3. เรียกใช้ aspnet_regiis -i


2

ฉันมีปัญหาเดียวกันและวิธีแก้ไขของฉันคือ:

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


สิ่งนี้ใช้งานได้อย่างมีเสน่ห์ แต่มีเหตุผลใดที่ฉันไม่ต้องการทำสิ่งนี้บนเซิร์ฟเวอร์ที่ใช้งานจริงเนื่องจากเป็น "คุณสมบัติการพัฒนาแอปพลิเคชัน"
Philip Stratford

ฉันไม่รู้เกี่ยวกับฟีเจอร์นั้นพอที่จะให้ความเห็นเกี่ยวกับการใช้มันในสภาพแวดล้อมการผลิต แต่ฉันไม่พบการเชื่อมโยงนี้ว่าอาจจะเป็นประโยชน์technet.microsoft.com/en-us/library/hh831475.aspx นอกจากนี้ยังมีคำสั่งที่คุณสามารถใช้เพื่อติดตั้งโมดูล IIS และ ASP.NET ผ่านทางพรอมต์คำสั่งซึ่งอาจเหมาะสมกับความต้องการใช้งานจริงของคุณมากขึ้น
Ryan Burbidge

1

ฉันมีปัญหาที่คล้ายกันกับ Windows Server 2012 การติดตั้งฟีเจอร์ " Application Server " ในตัวจัดการเซิร์ฟเวอร์แก้ไขปัญหา


1

การใช้คุณสมบัติการทำให้เป็นแอปพลิเคชัน - การค้นหาหน้าผิด (.asp) เนื่องจากการกำหนดค่าการสืบทอด

500.21 จะเกิดขึ้นในการเชื่อมต่อผู้ใช้ครั้งแรกเท่านั้น การเชื่อมต่อตามมาทำงาน

แก้ไขโดยการแก้ไขการรวบรวม url ของแอปพลิเคชันเริ่มต้นบนเว็บไซต์. NET


1
  1. วิ่ง cmd

  2. ลากและวางAspnet_regiis.exeในพรอมต์คำสั่งจาก:

    C:\Windows\Microsoft.NET\Framework64\v2.0.50727\
  3. ประเภท-i(ตัวอย่างAspnet_regiis.exe -i)

  4. กด Enter

  5. รอจนกว่ากระบวนการจะเสร็จสมบูรณ์

โชคดี!


0

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

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


0

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

เปิดใช้งานแอปพลิเคชัน 32 บิต = จริง

ถ้าอย่างนั้นก็ทำงานได้ดี!


0

ฉันมีปัญหาเดียวกันในตัวจัดการกรณีของฉันอยู่ในสองแห่ง:

<system.web>
...
<httpHandlers>
 <add verb="*" path="*.ashx" type="ApplicArt.Extranet2.Controller.FrontController, ApplicArt.Extranet2.Web.UI" />
  </httpHandlers>
</system.web>

<system.webServer>
<handlers>
   ...
  <add name="FrontController" verb="*" path="*.ashx" type="ApplicArt.Extranet2.Controller.FrontController, ApplicArt.Extranet2.Web.UI"/>
</handlers>
</system.webServer>

และเมื่อฉันลบตัวจัดการออกจาก [system.webServer] ปัญหาของฉันก็หายไป


0

ในบางสถานการณ์ข้อผิดพลาดนี้เกิดขึ้นเนื่องจากการกำหนดค่า Microsoft .NET Framework 4.0 สำหรับ ASP .NET เสียหายซึ่งสามารถเกิดขึ้นได้หากติดตั้ง Microsoft Visual Studio 2012 ก่อน Visual Studio 2010 หรือ Microsoft SQL Server 2008

หลังจากลองสิ่งที่แตกต่างฉันถึงข้อสรุปซ่อมแซมคุณติดตั้ง. Net โดยใช้คำสั่งต่อไปนี้ สำหรับข้อมูลเพิ่มเติมตามลิงค์

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SetupCache\v4.5.51209\setup.exe /repair /x86 /x64 /ia64 /norestart

https://msdn.microsoft.com/en-us/library/hh168535(v=nav.80).aspx



0

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

หลังจากผ่าน% windir% \ system32 \ inetsrv \ config \ applicationHost.config ฉันพบหนึ่งบิตที่ขาดหายไปสำคัญ ภายใต้การไม่ทำงานของฉันหายไปสองบรรทัดต่อไปนี้:

        <add name="ManagedEngineV4.0_32bit" image="C:\Windows\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness32" />
        <add name="ManagedEngineV4.0_64bit" image="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness64" />

เมื่อฉันเพิ่มพวกเขาทุกอย่างทำงานได้ดี

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