ไม่สามารถโหลดชนิด 'System.ServiceModel.Activation.HttpModule' จากแอสเซมบลี 'System.ServiceModel


91

ฉันใช้งาน Web Project ใน IIS

เป็น 4.0 Framework APP

ฉันมี Service.svc และฉันได้รับข้อผิดพลาดนี้เมื่อฉันเรียกใช้แอปพลิเคชันของฉัน

"ไม่สามารถโหลดประเภท 'System.ServiceModel.Activation.HttpModule' จากแอสเซมบลี 'System.ServiceModel, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089'"

ฉันลองสิ่งนี้ -> aspnet_regiis.exe -iru ซึ่งฉันพบในฟอรัมมากมายและไม่สามารถแก้ปัญหาของฉันได้

มีใครรู้วิธีอื่นไหม

คำตอบ:


160

ลองด้วย

c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -iru

เมื่อ. NET Framework หลายเวอร์ชันกำลังดำเนินการแบบเคียงข้างกันบนคอมพิวเตอร์เครื่องเดียวเวอร์ชัน ASP.NET ISAPI ที่แมปกับแอปพลิเคชัน ASP.NET จะกำหนดเวอร์ชันของรันไทม์ภาษาทั่วไป (CLR) ที่ใช้สำหรับแอ็พพลิเคชัน

คำสั่งด้านบนจะติดตั้ง ASP.NET เวอร์ชันที่เชื่อมโยงกับ Aspnet_regiis.exe และลงทะเบียนเฉพาะ ASP.NET ใน IIS

https://support.microsoft.com/en-us/help/2015129/error-message-after-you-install-the--net-framework-4-0-could-not-load


1
นอกจากนี้เรายังสามารถใช้ CMD: โดยป้อนที่อยู่ cd \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 จากนั้นติดตั้งโดย: คำสั่ง aspnet_regiis.exe -iru ถัดไปจะเป็นการดีกว่าที่จะรีสตาร์ท ISS โดย iisreset
Harry Sarshogh

2
สิ่งนี้ยังคงเป็นประโยชน์ในปัจจุบัน ฉันหวังว่าตอนนี้ MS จะแก้ไขปัญหานี้ได้แล้ว ในกรณีของฉันเรามีแอปพลิเคชัน IIS ที่ใช้งานโดยใช้ ASP.net 4.0 framework อยู่แล้ว แม้ว่าจะไม่แน่ใจว่าลูกค้าทำอะไรนอกเหนือจากการอัปเกรดเป็น 4.5.1 และการอัปเดตอื่น ๆ อีกมากมาย แต่ก็จำเป็นต้องเรียกใช้คำสั่งนี้อีกครั้งซึ่งเป็นสิ่งที่วิศวกรฝ่ายสนับสนุนของเราไม่ได้คิดเพราะไม่ต้องทำ เป็นบางครั้ง
ebol2000

ขอบคุณสำหรับคำตอบ. อย่างไรก็ตามสิ่งนี้ไม่ได้ผลสำหรับฉัน แต่การเปิดใช้งานทุกอย่างภายใต้ '.Net Framework 3.5' และ '.Net Framework 4.5' ในคุณสมบัติของ windows (ดังที่ได้กล่าวไว้ในคำตอบด้านล่าง) นั้นเป็นเคล็ดลับ
rasso

ฉันมี windows server 2008 x64 R2 และใช้งานได้ดี แต่หลังจากหนึ่งเดือนฉันได้รับข้อผิดพลาดนี้ฉันพบโพสต์นี้และเรียกใช้คำสั่งนี้บนเซิร์ฟเวอร์ของฉันและมันก็แก้ไขปัญหาของฉันได้ ฉันไม่เคยติดตั้งหรืออัปเดตอะไรบนเซิร์ฟเวอร์ของฉันตอนนี้คำถามคือทำไมมันถึงเกิดขึ้นเป็นเรื่องปกติหรือเป็นประเภทแฮ็กหรืออะไรทำนองนั้น
motevalizadeh

1
มันทำงานให้ฉันเฉพาะในกรณีที่ผมทำงานaspnet_regiis.exe -iruสำหรับv4.0.XXXXX และ v2.0.XXXXXรุ่น!
1_bug

51

ฉันติดตั้ง Windows 8 ในเครื่องของฉันแล้วและเครื่องมือ aspnet_regiis.exe ก็ใช้งานไม่ได้เช่นกัน

วิธีแก้ปัญหาที่ใช้ได้ผลสำหรับฉันถูกโพสต์ในลิงค์นี้ในคำตอบของ Neha: ข้อผิดพลาด System.ServiceModel.Activation.HttpModule

ทุกที่ที่มีการกล่าวถึงปัญหาในการแก้ปัญหานี้เป็นการลงทะเบียน aspNet ใหม่โดยใช้ aspnet_regiis.exe แต่สิ่งนี้ไม่ได้ผลสำหรับฉัน

แม้ว่านี่จะเป็นวิธีแก้ปัญหาที่ถูกต้อง (ตามที่อธิบายไว้อย่างสวยงามที่นี่)

แต่ใช้ไม่ได้กับ Windows 8

สำหรับ Windows 8 คุณต้องใช้คุณลักษณะของ Windows และเปิดใช้งานทุกอย่างภายใต้ ".Net Framework 3.5" และ ".Net Framework 4.5 Advanced Services"

ขอบคุณ Neha


4
คำแนะนำนี้จำเป็นสำหรับ Windows Server 2012 ด้วย
Chris O

ขอขอบคุณที่ส่งผ่านสิ่งนี้ไป ทำงานได้ดีในการแก้ไขปัญหานี้ใน Win 8.1
JJMpls

2
คุณไม่จำเป็นต้องเปิดใช้งานทุกอย่างเพียงแค่เปิดใช้งาน HTTP!
Marius Stănescu

สิ่งที่ Marius พูดเพียงแค่เปิดใช้งาน Http ภายใต้คุณสมบัติ. NET 3.5
C. Ridley

You & Neha ช่วยชีวิตผมที่เหลือ
Karim AG

36

สวัสดีขอบคุณสำหรับคำถาม; วิธีแก้ไข: "ไม่สามารถโหลดชนิด 'System.ServiceModel.Activation.HttpModule' จากแอสเซมบลี 'System.ServiceModel, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089'"

ในคุณลักษณะของ Windows ตรวจสอบทั้งหมดสำหรับ. NET 4 Advanced Services & .NET 3.5

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

เช่นเดียวกับ Nicolas Gago ฉันลอง aspnet_regiis.exe -iru แต่ไม่ได้ผล หลังจากเปิดคุณสมบัติแล้วข้อผิดพลาดหน้าจอสีเหลืองก็หายไป ขอบคุณ;


3
สิ่งนี้ใช้ได้ผลกับฉันใน Windows Server 2012 R2 - ขอบคุณ!
NickG

เหมือนกันสำหรับ Windows 8 ขอบคุณ!
NikitaBaksalyar

Win8 นี้คงสำหรับฉัน ขอบคุณ! +1
Darbio

1
ฉันต้องเปิดใช้งาน "การเปิดใช้งาน Http" ในขณะที่ฉันโฮสต์บริการใน IIS เท่านั้น มันได้ผลสำหรับฉันขอบคุณ
Dhanuka777

3
ทำงานให้ฉันใน windows 10
จัสติน

10

คุณสามารถติดตั้งคุณสมบัติเหล่านี้บน windows server 2012 ด้วย powershell โดยใช้คำสั่งต่อไปนี้:

Install-WindowsFeature -Name  NET-Framework-Features -IncludeAllSubFeature
Install-WindowsFeature -Name  NET-WCF-HTTP-Activation45 -IncludeAllSubFeature

คุณสามารถรับรายการคุณสมบัติด้วยคำสั่งต่อไปนี้:

Get-WindowsFeature | Format-Table

6

ตกลงในที่สุดก็ได้รับ

เปลี่ยนบรรทัดนี้ใน %windir%\System32\inetsrv\Config\ApplicationHost.config

<add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" />

ถึง

<add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler,runtimeVersionv2.0" />

หากยังไม่เพียงพอ

เพิ่มบรรทัดต่อไปนี้ใน Web.config

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>

การเปลี่ยน ApplicationHost.config ใช้ได้ผลสำหรับฉันกับ Windows Server 2016 คำตอบอื่น ๆ ทั้งหมดไม่ได้ช่วยอะไร ขอบคุณ!
Tobias

5

จากโหนดคุณลักษณะของตัวจัดการเซิร์ฟเวอร์คุณยังสามารถลบบางรายการย่อยภายใต้คุณลักษณะ. NET Framework 3.5.1 ที่ติดตั้งโดยการเปิดใช้งานของบทบาทอื่น ๆ

ตัวอย่างเช่นลบคุณสมบัติการเปิดใช้งาน WCF ดังต่อไปนี้และเว็บไซต์ของเรากลับมา:

  • [x] .NET Framework 3.5.1 คุณสมบัติ
    • [x] .NET Framework 3.5.1
    • [] การเปิดใช้งาน WCF
      • [] การเปิดใช้งาน HTTP
      • [] การเปิดใช้งานที่ไม่ใช่ HTTP

หมายเหตุ: เราไม่จำเป็นต้องรีสตาร์ท




1

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

คลิกเว็บไซต์ => การตั้งค่าขั้นสูง ... (ทางด้านขวา) => คลิกทางขวาของ Application Pool => ปุ่มที่มี "... " ควรปรากฏ => เลือก ".NET v4.5 Classic"

หากพูลแอปพลิเคชันนั้นไม่ทำงานให้ลองใช้กลุ่มอื่น


0

เรากำลังใช้บริการเว็บร่วมกับเว็บไซต์และเมื่อเราเผยแพร่เว็บไซต์ก็ส่งกลับข้อผิดพลาดนี้เช่นเดียวกัน เราพบว่าการไปที่ IIS และลบ ServiceModel ออกจากโมดูลและ svc-Integrated จาก Handler Mappings ข้อผิดพลาดก็หายไป


0

ฉันมาสายหวังว่ามันจะช่วยใครสักคน .... นี่เป็นปัญหาที่ทราบแล้วกับ IIS 8.0

วิธีแก้ไขคือลบโมดูล 3.x และตัวจัดการออกจากตัวจัดการ IIS คุณสามารถลบได้ที่ระดับแอปพลิเคชันหรือไซต์หากคุณต้องการเก็บไว้ใน applicationHost.config แต่ฉันต้องการลบออกจาก applicationHost.config ทำตามขั้นตอนต่อไปนี้:

ในตัวจัดการ IIS ให้คลิกโหนดชื่อเครื่อง ใน“ มุมมองคุณลักษณะ” ดับเบิลคลิกที่“ โมดูล” ค้นหา“ ServiceModel” และลบออก รูปภาพ 1 สำหรับแก้ไขข้อผิดพลาด IIS 8: ไม่สามารถโหลดชนิด 'System.ServiceModel.Activation.HttpModule'

กลับไปที่“ มุมมองคุณลักษณะ” ของโหนดชื่อเครื่องดับเบิลคลิกที่“ Handler Mappings” ค้นหา“ svc-Integrated” และลบออก รูปภาพ 2 สำหรับแก้ไขข้อผิดพลาด IIS 8: ไม่สามารถโหลดชนิด 'System.ServiceModel.Activation.HttpModule'


0

คุณอาจเปลี่ยนการตั้งค่าคุณสมบัติ IIS ขั้นตอนง่ายๆในการแก้ไขโดยเปิดพรอมต์คำสั่งพร้อมรันในฐานะผู้ดูแลระบบ (สำหรับ Windows Server 2008) และรันคำสั่ง C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe - iru สิ่งนี้จะตั้งค่า ASP.Net 4.0 จากนั้นรีเซ็ต IIS ตามคำสั่ง iisreset

ข้อมูลอ้างอิง: https://support.plesk.com/hc/en-us/articles/213392249-ASP-website-shows-error-Could-not-load-type-System-ServiceModel-Activation-HttpModule-from-assembly


0

ปัญหานี้เกิดขึ้นเนื่องจากApplicationhost.configไฟล์สำหรับ Windows Process Activation Service (WAS) มีแท็กบางแท็กที่เข้ากันไม่ได้กับ. NET Framework 4.0

ตามสภาพแวดล้อมของคุณคุณมีวิธีแก้ปัญหา 4 วิธีในการแก้ไขปัญหานี้:

  • กำลังอัปเดต Applicationhost.config
  • ดำเนินการลงทะเบียน ASP.NET IIS
  • เปิดคุณสมบัติ Named Pipe Activation
  • ลบ ServiceModel 3.0 จาก IIS

ตรวจสอบขั้นตอนโดยละเอียดสำหรับแต่ละ woraround ที่Solving ca n't load type system.servicemodel.activation.httpmodule from assembly System.ServiceModel


-1

ลบโมดูลที่ระบุไว้ในข้อความแสดงข้อผิดพลาด. Net, 1 โหวตลง

ใน Windows server 2012 ไปที่ ISS -> Modules -> Remove the ServiceModel3-0 (ไม่มีหมายเลขทำงานสำหรับฉัน)


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