ฉันได้รับข้อผิดพลาด
ไม่สามารถโหลดประเภท MvcApplication
เมื่อฉันพยายามเรียกใช้เว็บไซต์ของฉัน
จะแก้ไขอย่างไร
ฉันได้รับข้อผิดพลาด
ไม่สามารถโหลดประเภท MvcApplication
เมื่อฉันพยายามเรียกใช้เว็บไซต์ของฉัน
จะแก้ไขอย่างไร
คำตอบ:
โง่อย่างที่มันฟังดูลองทุกอย่างและมันก็ไม่ทำงานและในที่สุดก็เริ่ม VS2012 ใหม่เพื่อดูว่ามันทำงานได้อีกครั้ง
- สำหรับฉันการแก้ไขคือการเปลี่ยนพา ธ เอาต์พุตในแท็บบิลด์ ฉันเปลี่ยนพา ธ เอาต์พุตเป็นbin\
และข้อผิดพลาดก็หายไป
- การแก้ไขอื่นอาจเป็นไปได้ว่าคุณมีชุดโครงการเริ่มต้นผิด
ฉันได้รับข้อผิดพลาดเดียวกันและกระตุ้นให้ทำทุกอย่างที่กล่าวถึงที่นี่และที่อื่น ๆ ไม่มีอะไรทำงาน ปรากฎว่าฉันได้คัดลอกซอร์สโค้ดของ global.asax.cs จากโปรเจ็กต์เวอร์ชันก่อนหน้าซึ่งมีชื่อแตกต่างกัน ดังนั้นควรจะได้รับnamespace Test
namespace Test.WebUI
ผิดพลาดอย่างแน่นอนและฉันก็อายที่จะเขียนสิ่งนี้! แต่เขียนด้วยความหวังว่าข้อผิดพลาดที่คล้ายกันจากคนอื่นอาจทำให้เขาตรวจสอบเรื่องเล็ก ๆ น้อย ๆ เช่นนี้
เพียงสร้างคู่มือบนโซลูชันของคุณ
หากคุณใช้ IIS ในเครื่องให้ลองลบการลงทะเบียนเว็บไซต์ในตัวจัดการ IIS แล้วสร้างมันใหม่ด้วยตนเอง
[แยกจากคำถาม]
หากคุณได้รับข้อผิดพลาดนี้: "ไม่สามารถโหลดประเภท MvcApplication" ให้ดูที่เส้นทางผลลัพธ์ของโครงการของคุณและตรวจสอบให้แน่ใจว่าได้ตั้งค่าเป็น 'bin \' ปัญหาคือ AspNetCompiler ไม่สามารถค้นหาไฟล์ได้หากไฟล์นั้นไม่อยู่ในตำแหน่งเริ่มต้น
ผลข้างเคียงอีกประการหนึ่งของการเปลี่ยนโฟลเดอร์เอาท์พุทคือคุณจะไม่สามารถแก้ไขรหัสของคุณได้และจะมีข้อความแจ้งว่าไม่พบข้อมูลประกอบ
bin
ไปbin\Debug
แล้วbin\Release
แต่ไฟล์เก่ายังอยู่ในbin
โฟลเดอร์ของฉันดังนั้นฉันจึงไม่เห็นปัญหาใด ๆ แน่นอนถ้าคุณชำระเงินที่สะอาดและสร้างไฟล์เหล่านี้ไม่มีอยู่สำหรับคุณมันจะระเบิด
ฉันมีปัญหาเดียวกันและแก้ไขได้ด้วยขั้นตอนด้านล่าง
อ่านี่มันน่ารำคาญ
มีข้อผิดพลาดนี้หลังจากไฟตัดและฉันกลับไปที่โครงการของฉัน
ฉันลองรีสตาร์ท VS ฉันพยายามตั้งค่าพา ธ เอาต์พุตเป็น \ bin ฉันตรวจสอบช่องว่างชื่อของฉัน
แต่สิ่งที่ใช้ได้ผลสำหรับฉันคือการสร้างโซลูชันขึ้นใหม่
สร้างโซลูชันใหม่ !!!
ทางออกของฉัน: เพราะฉันสร้างปัญหาขึ้น! ฉันได้เปลี่ยน namespace ใน Global.asax.cs
คุณต้องเปลี่ยนค่าแอตทริบิวต์รับช่วงใน Global.asax
ตรวจสอบรหัสที่อยู่เบื้องหลังข้อมูลที่ให้ไว้ใน global.asax พวกเขาควรชี้ไปที่คลาสในรหัสอย่างถูกต้อง
ตัวอย่าง global.asax:
<%@ Application Codebehind="Global.asax.cs" Inherits="MyApplicationNamespace.MyMvcApplication" Language="C#" %>
โค้ดตัวอย่างด้านหลัง:
namespace MyApplicationNamespace
{
public class MyMvcApplication : System.Web.HttpApplication
{
protected void Application_Start( )
{
AreaRegistration.RegisterAllAreas( );
FilterConfig.RegisterGlobalFilters( GlobalFilters.Filters );
RouteConfig.RegisterRoutes( RouteTable.Routes );
BundleConfig.RegisterBundles( BundleTable.Bundles );
}
}
}
สิ่งนี้สามารถเกิดขึ้นได้ในขณะที่รันโครงการใน Visual Studio ถ้า IIS Express ของคุณมี / กำลังโฮสต์โครงการเก่า / แตกต่างกันโดยใช้การกำหนดพอร์ตเดียวกัน
ในการแก้ไขปัญหานี้คุณสามารถเปลี่ยนการกำหนดพอร์ตสำหรับโครงการนี้หรือปิด IIS Express
หากคุณกำลังโฮสต์ใน IIS Express และคุณเปิดโครงการของคุณในสองตำแหน่งที่ต่างกันคุณอาจเห็นข้อผิดพลาดนี้
การแก้ปัญหาคือจะไปและคลิกProject/Properties/Web/Servers
Create Virtual Directory
วิธีแก้ปัญหาสำหรับฉันคือคลิกขวาที่โครงการ Mvc เลือกคุณสมบัติและคลิกสร้างไดเรกทอรีเสมือน
กล่องข้อความโผล่ขึ้นมาบอกว่าโครงการถูกแมปไปยังโฟลเดอร์ที่ไม่ถูกต้อง (มันแสดงโฟลเดอร์สำหรับโครงการ TFSอื่นมันให้ตัวเลือกในการแมปกลับไปยังโฟลเดอร์ที่ถูกต้อง
ฉันมีอยู่แล้วbin/
ในแท็บสร้างของฉัน ฉันได้ global.asax จากสำเนาโครงการอื่น แต่นั่นไม่ได้ผล
วิธีแก้ปัญหาที่ใช้งานได้ในที่สุดสำหรับฉันก็คือลบbin/
โฟลเดอร์และสร้างโฟลเดอร์ว่างใหม่ที่มีชื่อเดียวกัน
ฉันรู้ว่ามีคำตอบมากมายสำหรับเรื่องนี้อยู่แล้ว แต่ฉันคิดว่าฉันจะพูดถึงสิ่งที่แก้ไขให้ฉันได้แล้ว
การกำหนดค่าของฉันถูกตั้งค่าเป็นดีบั๊ก การเปลี่ยนเป็นรีลีสนั้นเป็นเคล็ดลับสำหรับฉัน
ฉันได้รับข้อผิดพลาดนี้เนื่องจากฉันใช้งานโครงการแม้จะมีข้อผิดพลาดในการรวบรวม เรื่องนี้ฉันไม่ได้สังเกต
ลบเนื้อหาของโฟลเดอร์ bin ของไซต์ (ใช้ file explorer สำหรับสิ่งนี้) สร้างใหม่
ฉันตกลงไป ฉันได้อ่านและทดสอบวิธีแก้ปัญหาที่เป็นไปได้ทั้งหมดที่ได้รับก่อนหน้านี้ การตรวจสอบบิลด์พา ธ , สร้าง, สร้างใหม่, ทำความสะอาด, รีสตาร์ท IIS และ VS2015, ติดตั้งแพ็คเกจ nuget ทั้งหมดใหม่, รวบรวมมันทีละครั้ง, ฯลฯ , ...
ทันใดนั้นฉันก็จำได้ว่า VS เก็บไฟล์ชั่วคราว ASP บางไฟล์ไว้ในโฟลเดอร์ระบบ ... ฉันคิดว่าฉันควรจะลองดูสักหน่อยมันก็ไม่ได้แย่ไปกว่านี้แล้ว ดังนั้นฉันว่างเปล่า:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files
และทั้งหมดก็ทำงานได้อีกครั้ง ... แปลกที่ปัญหานี้มีวิธีแก้ไขที่เป็นไปได้ที่แตกต่างกัน ...
ฉันเคยเห็นมันมาหลายครั้งแล้วในช่วงทศวรรษที่ผ่านมา มีปัญหามากมายที่ทำให้เกิดข้อผิดพลาดเดียวกัน
สาเหตุหนึ่งคือการเปลี่ยนชื่อไฟล์ หากคุณกำลังทำงานกับไฟล์. cshhtml ให้ตรวจสอบเนมสเปซทั้งหมดภายในไฟล์เหล่านั้นและภายในไฟล์ Views \ web.config สำหรับเว็บฟอร์มให้เปลี่ยนชื่อ Default.aspx (ไฟล์. cs และไฟล์ดีไซเนอร์ที่เกี่ยวข้องจะถูกเปลี่ยนชื่อโดยอัตโนมัติ) codebehind เปลี่ยนแปลง แต่ Inherits line ในมาร์กอัปไม่ได้ เปลี่ยนด้วยตนเอง ตรวจสอบหน้านักออกแบบอีกครั้ง บางครั้ง (VS2005-8?) หน้าผู้ออกแบบไม่ได้สะท้อนการเปลี่ยนแปลงในเนมสเปซ ไม่เห็นสิ่งนี้ในปี 2010+
ปัญหาอื่นคือเมื่อทุกอย่างทำงานใน VS หรือบนเครื่องพีซีของคุณ แต่ไม่เมื่อคุณปรับใช้ อาจเป็นเพราะสภาพแวดล้อมการปรับใช้ไม่เหมือนกัน ตัวอย่างเช่นข้อผิดพลาดเกิดขึ้นหากคุณวางรหัสของคุณในไดเรกทอรีเสมือนภายใต้โฟลเดอร์แอปพลิเคชัน แต่จะไม่เกิดขึ้นหากคุณสร้างโฟลเดอร์แอปพลิเคชันใหม่และวางไฟล์ทั้งหมดไว้ในนั้น ฉันไม่เข้าใจอันนี้เนื่องจากฉันมีโฟลเดอร์ลูก / โฟลเดอร์เสมือนใหม่ที่มีการอนุญาตเดียวกัน (หรือฉันคิดว่า) และ (ฉันเชื่อว่า) กลุ่มแอปพลิเคชันควรทำงานเหมือนกันสำหรับทุกสิ่งในโฟลเดอร์แอปพลิเคชันที่กำหนด
ในกรณีของฉันฉันมีโฟลเดอร์ bin พร้อมชุดประกอบที่อัปเดตจากชุดประกอบอื่น ๆ บนเซิร์ฟเวอร์ IIS อีกครั้งเพื่อให้แน่ใจว่าสิ่งเหล่านี้จะทำงานในโฟลเดอร์แอปพลิเคชันแยกต่างหากทำให้ประสบความสำเร็จ
HTH
ฉันพบปัญหานี้ทุกครั้งที่ฉันบันทึกไฟล์ที่ได้รับการรวบรวมแบบไดนามิก (ascx, aspx และอื่น ๆ ) ฉันรอประมาณ 8-10 วินาทีแล้วมันก็หายไป มันน่ารำคาญอย่างมาก
ฉันคิดว่าอาจเป็นปัญหา IIS Express ดังนั้นฉันจึงลองใช้เซิร์ฟเวอร์ inbuilt dev และฉันยังคงได้รับหลังจากบันทึกไฟล์ ฉันใช้งานแอป MVC ฉันกำลังใช้ T4MVC อยู่ด้วยนั่นอาจเป็นปัจจัย ...
ฉันมีข้อผิดพลาดที่น่าผิดหวังในสภาพแวดล้อมการพัฒนาใน Visual Studio และเปิดออกเหตุผลก็ค่อนข้างโง่ กล่าวโดยย่อหากคุณมีมากกว่าหนึ่งโครงการในเว็บไซต์ / เว็บไซต์ที่มีโซลูชัน: ตรวจสอบให้แน่ใจว่าพอร์ตที่คุณพยายามเข้าถึงเว็บไซต์นั้นเหมือนกับที่กำหนดค่าไว้ใน Project Properties-> Web
ในกรณีของฉันเกิดข้อผิดพลาดเนื่องจากฉันใช้พอร์ตที่แตกต่างกันในการเข้าถึงเว็บไซต์ (ในเบราว์เซอร์) ในขณะที่โครงการในการแก้ปัญหาได้รับมอบหมายพอร์ตอื่น เพื่ออธิบายเพิ่มเติมเล็กน้อยฉันมีสองโครงการเว็บไซต์ในโซลูชันของฉัน Website1 (พอร์ตที่กำหนด 8001 ใน ISS โดย Visual-Studio) และ Website2 (พอร์ต 8101 ที่กำหนดใน ISS โดย Visual-Studio) ดังนั้นแม้ว่าฉันจะสร้างเว็บไซต์ 1 แต่ฉันพยายามเข้าถึงเว็บไซต์โดยใช้ locahost: 8101
ตอนนี้ในที่สุดฉันก็ตระหนักถึงปัญหาฉันเห็นว่าความคิดเห็นของ @ StingyJack แก้ไขปัญหาที่คล้ายกันเช่นกัน
ตรวจสอบให้แน่ใจว่าเนมสเปซในglobal.asax.csของคุณตรงกับเนมสเปซของ webapp ของคุณ
ฉันพบข้อผิดพลาดนี้อีกครั้งและไม่มีข้อใดข้อหนึ่งสำหรับฉัน ฉันต้องลบโหนดต่อไปนี้ในไฟล์. csproj:<VisualStudio>....</VisualStudio>
.csproj: โหลดซ้ำ VS และใช้งานได้
FYI, VS สามารถสร้างโหนดขึ้นมาใหม่จากนั้นฉันสร้างเว็บไซต์ขึ้นใหม่ใน IIS (ผ่าน VS) และทำงานได้อย่างสมบูรณ์
หวังว่านี่จะช่วยใครซักคน
ตรวจสอบให้แน่ใจว่าคุณไม่ควรเปิดโครงการ MVC เช่นไฟล์ -> เปิดเว็บไซต์ใช้ไฟล์ -> เปิดโครงการแทน
สิ่งที่ได้ผลสำหรับฉันคือการเริ่ม Visual Studio ใหม่
ฉันลองสร้างใหม่ด้วยตนเองดำเนินการทำความสะอาดและสร้างใหม่และลบโฟลเดอร์ bin ทั้งหมดที่ไม่สามารถใช้งานได้ เส้นทางออกของฉันถูกตั้งค่าไว้ที่ bin \
หากคุณเปลี่ยนเนมสเปซตรวจสอบให้แน่ใจว่าได้คลิกขวาและรีแฟคเตอร์
สิ่งนี้อาจเกิดขึ้นบ่อยมากหากคุณเปลี่ยนเนมสเปซของคุณ ส่งคืนชื่อของเนมสเปซของคุณเหมือนที่เคยเป็นมาและนั่นควรทำให้ใช้งานได้!
ในบางสถานการณ์โครงการใหม่ที่คุณสร้างไม่ได้ถูกตั้งค่าเป็นบิวด์เป็นค่าเริ่มต้น หากคุณคลิกขวาที่โซลูชันของคุณให้เลือกProperties
และเลือกConfiguration Properties
| Configuration
โหนดด้านซ้ายและตรวจสอบให้แน่ใจว่าโครงการของคุณมีเครื่องหมายถูกใต้Build
คอลัมน์ ในสถานการณ์ปกติฉันได้พบสิ่งนี้เกิดขึ้นตามค่าเริ่มต้น ในสถานการณ์อื่น ๆ (ฉันมี Web Api / Xamarin Android ค่อนข้างซับซ้อนและ iOS / Mvc 5 โซลูชันที่แสดงพฤติกรรมนี้) ไม่มีเครื่องหมายถูก
สิ่งนี้เกี่ยวข้องกับคำตอบอื่น ๆ - ถ้าแอสเซมบลีของเว็บ projet ของคุณไม่พร้อมใช้งานคุณจะได้รับข้อผิดพลาดนี้ แต่นี่อาจเป็นสถานการณ์ทั่วไปโดยเฉพาะอย่างยิ่งเมื่อคุณทำรวบรวมโซลูชันของคุณ - โครงการไม่ได้ถูกสร้างขึ้น
ผมได้รับข้อผิดพลาดนี้เพราะการควบคุมเวอร์ชันของข้าได้มาตั้งที่จะไม่สนใจฉันbinโฟลเดอร์ โง่มาก แต่อาจจะมีคนอื่นได้รับประโยชน์
ฉันพบปัญหานี้มากและฉันเห็นว่ามีคำตอบทุกข้อ แต่ไม่ได้รับการยอมรับ ฉันหลังจากค้นพบเล็กน้อยว่าเพียงแค่สร้างเว็บไซต์ก่อนที่จะพยายามแก้ไขปัญหาของฉัน