Lỗi: «Không thể tải loại MvcApplication»


240

Tôi đang nhận được lỗi

Không thể tải loại MvcApplication

khi tôi cố gắng chạy trang web của tôi.

Làm thế nào để sửa nó?


35
Tôi đã gặp lỗi này một cách ngẫu nhiên một ngày trên máy chủ xây dựng của chúng tôi. làm một hướng dẫn xây dựng lại giải quyết nó.
Zack

1
Đường dẫn đầu ra được đặt trong các thuộc tính dự án trên tab xây dựng
silasdavis

8
xóa tập tin global.asax và thêm một tập tin mới, và bạn sẽ ổn thôi.
DotNetGeek

4
Hóa ra dự án mới không được chọn trong cấu hình hoạt động để xây dựng.
JGeerWM

4
Nếu gần đây bạn đã thêm dự án hoặc nếu gần đây bạn đã thay đổi cấu hình xuất bản (tức là đã chuyển từ AnyCPU sang x64) thì có thể dự án không được xây dựng khi bạn chạy nó. Đi đến BUILD-> QUẢN LÝ CẤU HÌNH và kiểm tra cột xây dựng có hộp kiểm được đánh dấu. Tôi vừa mới gặp sự cố này. Bạn cũng sẽ nhận thấy rằng các điểm dừng của bạn là các vòng tròn rõ ràng khi chạy ứng dụng. Tôi nghĩ rằng đây là kết quả của bản dựng mặc định cho .net 4.5.1 trên kiến ​​trúc bộ xử lý thiên về 32 bit. Chỉ một vấn đề nếu bạn kiểm tra x64
David Bridge

Câu trả lời:


115

Nghe có vẻ ngu ngốc, đã thử mọi thứ và nó không hoạt động và cuối cùng đã khởi động lại VS2012 để thấy nó hoạt động trở lại.


1
LMFAO, cũng đã làm việc cho tôi sau khi thử mọi thứ được đề cập ở đây và không hoạt động! Cảm ơn và +1!
Yustme

Vấn đề tương tự ở đây. Lỗi xuất hiện sau khi hợp nhất và sẽ không biến mất cho đến khi VS2012 được khởi động lại.
StuartQ

1
Đối với tôi, những gì có thể xảy ra là cổng được sử dụng bởi một phiên bản thứ hai của Visual Studio không có dự án được biên dịch.
Clay Lenhart

Làm việc cho tôi là tốt. Thật là một bãi rác.
PAWAN RAJ Shakya

5 năm sau VS2017 và đây vẫn là giải pháp. : /
Sagiv bg

105

-Đối với tôi, cách khắc phục là thay đổi đường dẫn đầu ra trong tab xây dựng. Tôi đã thay đổi đường dẫn đầu ra bin\và lỗi đã biến mất.

-Một cách khắc phục khác có thể là bạn đã thiết lập dự án khởi động sai.


8
Đây là vấn đề của chúng tôi là tốt. Trước đây, nó đã được đặt thành một cái gì đó như Debug \ x86 \ bin
t3

4
HẠ! Đây là lần thứ hai trong hai năm tôi đến bài viết này với vấn đề này, lần đầu tiên nó là câu trả lời hàng đầu, lần thứ hai là câu trả lời này.
Ben Lesh

1
Cảm ơn! Cái này cũng cắn tôi. Tôi đã thay đổi nền tảng để xóa một số cảnh báo và đường dẫn đầu ra đã thay đổi mà tôi không biết.
camainc

6
Đây là câu trả lời đúng cho tôi ... Có ai biết tại sao Visual Stupido lại hành xử theo cách này không?
andreapier

1
Yup, đây là nó. Thay đổi thành `bin` làm cho mọi thứ hoạt động như mong đợi. @andreapier: Vâng, VS2012 dường như cũng hành xử theo cách ngu ngốc này. Ai đó sửa nó càng sớm càng tốt! :)
bây giờ người không được đặt tên.

82

Tôi đã nhận được cùng một lỗi và cảm hứng làm mọi thứ được đề cập ở đây và những nơi khác không có gì làm việc. Hóa ra tôi đã sao chép mã nguồn của global.asax.cs từ một phiên bản trước của dự án có tên khác. Vì vậy, namespace Testcần phải có namespace Test.WebUI. Một sai lầm ngớ ngẩn tất nhiên và hơi xấu hổ khi viết điều này! Nhưng viết với hy vọng rằng một lỗi tương tự từ bất kỳ ai khác cũng có thể khiến anh ta kiểm tra khía cạnh tầm thường này.


Cảm ơn, Vipul. Tôi vừa mới làm điều tương tự và kết quả là tôi đã mất rất nhiều công việc. Chỉ cần thay đổi tên không gian tên đã lưu thịt xông khói của tôi
xiecs

2
Tôi chỉ làm điều tương tự. Tôi đã mở Global.asax trong trình soạn thảo văn bản và khắc phục sự cố không gian tên. Cảm ơn
Kayvan Karim

6
Tôi chỉ làm điều tương tự. Chỉ để giải thích cho bất kỳ ai khác: Ban đầu tôi có một dự án thử nghiệm có tên là "MvcApplication1" được tạo tự động. Sau đó, tôi đã thay thế toàn bộ không gian tên "MvcApplication" thành "MyTest". Trong Global.asax trong notepad, sau đó tôi cần đổi thành Kế thừa = "MyTest.MvcApplication"
PabloInNZ

Nếu có một cách để trao vàng, tôi sẽ
shanabus

53

Chỉ cần làm một hướng dẫn xây dựng trên giải pháp của bạn.

Nếu bạn đang sử dụng IIS cục bộ, hãy thử xóa đăng ký trang web trong trình quản lý IIS và sau đó tạo lại thủ công.


Đây là người chiến thắng đối với tôi, tôi đã bỏ trang web khỏi repo và thiết lập iis, nhưng chưa bao giờ thực hiện việc xây dựng trong IIS
Anthony Main

31

[Trích từ câu hỏi]

Nếu bạn gặp phải lỗi này: "Không thể tải loại MvcApplication", hãy xem đường dẫn đầu ra của dự án của bạn và đảm bảo rằng nó được đặt thành 'bin \'. Vấn đề là AspNetCompiler không thể tìm thấy các tệp nếu chúng không ở vị trí mặc định.

Một tác dụng phụ khác của việc thay đổi thư mục đầu ra là bạn sẽ không thể gỡ lỗi mã của mình và nó xuất hiện một thông báo nói rằng không thể tìm thấy thông tin hội.


1
Điều này có vẻ hơi kỳ lạ khi thông thường nó được phân tách giữa các cấu hình xây dựng khác nhau.
nicodemus13

Theo mặc định, nó được phân tách, nhưng nhiều người thay đổi chúng thành một thư mục duy nhất để phát hành và gỡ lỗi ở cùng một vị trí cho một dự án khác tham chiếu đầu ra (trình cài đặt, v.v.).
StingyJack

Tôi tự hỏi nếu vấn đề này là đặc biệt với IIS Express. Dù sao đi nữa, lý do tôi tìm ra là vì nó vừa vặn qua một trong những phần khởi động mới của chúng tôi: Tôi đã đổi binthành bin\Debugbin\Releasecác tệp cũ vẫn còn trong binthư mục của tôi nên tôi không thấy bất kỳ vấn đề nào. Tất nhiên, nếu bạn thực hiện kiểm tra sạch sẽ và xây dựng các tệp này không tồn tại cho bạn để nó nổ tung.
Bart Đọc

15

Tôi đã có cùng một vấn đề và giải quyết nó với các bước dưới đây

  1. Đi đến tài sản dự án
  2. Trên tab "Build ', đặt đường dẫn đầu ra thành" bin \ "

1
Cảm ơn bạn rất nhiều vì điều này, nó đã khắc phục một sự cố mà tôi gặp phải với các điểm dừng không được đặt!
Chris

Đó là những gì làm việc cho tôi. Tôi tự mình khám phá ra nhưng cảm ơn.
Alexandre

Chúa ơi! Điều này tiết kiệm một ngày.
xiên

14

Ahh điều này thật khó chịu.

Có lỗi này sau khi cắt điện và tôi trở lại dự án của mình.

Tôi đã thử khởi động lại VS. Tôi đã thử thiết lập đường dẫn đầu ra thành \ bin. Tôi đã kiểm tra không gian tên của tôi.

Nhưng những gì làm việc cho tôi là xây dựng lại giải pháp.

Giải pháp xây dựng lại !!!


13

Giải pháp của tôi: Bởi vì tôi đã tạo ra vấn đề! Tôi đã thay đổi không gian tên trong Global.asax.cs

Bạn cũng cần thay đổi giá trị thuộc tính Kế thừa trong Global.asax.


3
Tôi cũng có vấn đề này. Tôi muốn Visual Studio sẽ cấu trúc lại các không gian tên trong các thuộc tính kế thừa trong đánh dấu - cũng như các lớp.
csharpforevermore

Tương tự ở đây. Khi đổi tên không gian tên, hãy đảm bảo bạn shift-alt-F10 hoặc nhấp chuột phải để đổi tên và nó sẽ cập nhật tất cả các phiên bản cho bạn.
Cướp

Điều này làm việc cho tôi, nhưng thật khó để tìm nơi thực hiện giải pháp. Tôi đã thực hiện 'Tìm tất cả' để truy cập tệp Global.asax vì khi bạn nhấp đúp vào Global.asax trong trình chỉnh sửa Visual Studio, bạn sẽ nhận được tệp Global.asax.cs thực sự là mã đằng sau tệp .asax. Lưu ý phần mở rộng .cs. Vì vậy: CTRL-F và tìm kiếm Global.asax (không có .cs) và thay đổi sự kế thừa để phù hợp với không gian tên của bạn.
GerardV

9

Kiểm tra mã đằng sau thông tin, được cung cấp trong global.asax. Họ nên trỏ chính xác đến lớp trong mã của nó phía sau.

mẫu global.asax:

<%@ Application Codebehind="Global.asax.cs" Inherits="MyApplicationNamespace.MyMvcApplication" Language="C#" %>

mã mẫu phía sau:

   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 );
            }
        }
    }

7
  1. Nhấp chuột phải vào dự án trong giải pháp đang thất bại.
  2. Dự án dỡ hàng
  3. Tải lại dự án
  4. Xây dựng dự án
  5. Xây dựng lại giải pháp

5

Điều này cũng có thể xảy ra trong khi chạy dự án trong studio trực quan nếu IIS Express của bạn có / đang lưu trữ một dự án cũ / khác nhau bằng cách sử dụng cùng một phép gán cổng.

Để khắc phục điều này, bạn có thể thay đổi gán cổng cho dự án này hoặc đóng IIS Express.


5

Nếu bạn đang lưu trữ trong IIS express và bạn mở dự án của mình ở hai địa điểm khác nhau, thì bạn có thể thấy lỗi này.

Giải pháp là đi đến Project/Properties/Web/Serversvà nhấp vào Create Virtual Directory.


4

Giải pháp cho tôi là nhấp chuột phải vào dự án Mvc, chọn thuộc tính và nhấp vào Tạo thư mục ảo.

Một hộp thông báo hiện lên nói rằng dự án đã được ánh xạ vào thư mục sai (nó hiển thị thư mục cho một dự án TFS khác . Nó đã cho tùy chọn ánh xạ nó trở lại đúng thư mục.


1
Cảm ơn bạn cho tiền boa, nguyên nhân cho tôi là gần đây tôi đã di chuyển tfs. Tôi cần hủy ánh xạ thư mục giải pháp và ánh xạ lại để ứng dụng hoạt động!
adhie

4

Tôi đã có bin/ trong tab xây dựng của tôi. Tôi đã nhận global.asax từ một bản sao khác của dự án, nhưng điều đó đã không thành công.

Giải pháp cuối cùng có hiệu quả với tôi là xóa bin/thư mục và tạo một thư mục trống mới có cùng tên.


1
Điều này không cung cấp một câu trả lời cho câu hỏi. Để phê bình hoặc yêu cầu làm rõ từ một tác giả, hãy để lại nhận xét bên dưới bài đăng của họ - bạn luôn có thể nhận xét về bài đăng của riêng bạn và khi bạn có đủ danh tiếng, bạn sẽ có thể nhận xét về bất kỳ bài đăng nào .
JLRishe

@brasofilo Tôi có thể đã thực hiện cuộc gọi sai, nhưng do thiếu thông tin nghiêm trọng trong câu hỏi ban đầu, rất có thể đây không phải là cách khắc phục sự cố của OP và câu trả lời này đủ ngắn để có thể thêm vào dưới dạng nhận xét. Mặt khác, câu hỏi ban đầu đã được đăng cách đây rất lâu và có rất nhiều câu trả lời "đây là điều làm việc cho tôi" ở đây, vì vậy đây là một cuộc gọi khó khăn. Câu hỏi này và câu trả lời của nó có thể cần một số dọn dẹp.
JLRishe

@JLRishe, tốt, vâng, đó là một mớ câu hỏi và trả lời. Câu trả lời này thậm chí có thể trùng lặp với câu trả lời nhiều thứ hai, nhưng tôi không chắc. Tôi sẽ gắn cờ Q yêu cầu khóa tối thiểu 10rep.
brasofilo

4

Tôi biết đã có rất nhiều giải pháp cho vấn đề này rồi, nhưng tôi nghĩ tôi sẽ chỉ đề cập đến những gì đã giải quyết nó cho tôi.

Cấu hình của tôi đã được đặt thành Debug. Thay đổi nó thành Phát hành đã lừa tôi.


2
Thay đổi nó để phát hành và nó hoạt động ... đã thay đổi nó để gỡ lỗi và nó tiếp tục hoạt động ... cảm ơn.
Paul Zahra

3

Tôi đã nhận được lỗi này bởi vì tôi đang chạy dự án mặc dù có một số lỗi thời gian biên dịch. Điều này tôi đã không thông báo.


Không để ý vì Danh sách lỗi bleepity-bleep cho biết đó là HẠNH PHÚC !!!! Cảm ơn bạn.
CindyH

3

Xóa nội dung của thư mục bin của trang web (sử dụng trình duyệt tệp cho việc này). Tái thiết.


3

Tôi đã rơi vào điều này. Tôi đã đọc và thử nghiệm tất cả các giải pháp có thể đã được đưa ra trước đó. Kiểm tra đường dẫn xây dựng, xây dựng, xây dựng lại, dọn dẹp, khởi động lại IIS và VS2015, cài đặt lại tất cả các gói nuget, biên dịch từng cái một, v.v., ...

Tôi đột nhiên nhớ rằng VS giữ một số tệp tạm thời ASP trong các thư mục hệ thống ... Tôi nghĩ rằng tôi nên thử nó, sau tất cả, điều đó có thể trở nên tồi tệ hơn. Vì vậy, tôi đã làm trống:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files

Và tất cả đang hoạt động trở lại ... Thật kỳ lạ là vấn đề này có những giải pháp khả thi khác nhau ...


3

Tôi đã thấy điều này nhiều lần trong thập kỷ qua và chỉ cần có lại nó. Có nhiều vấn đề dẫn đến cùng một lỗi.

Một nguyên nhân là đổi tên tập tin. Nếu bạn đang làm việc với các tệp .cshtml, hãy kiểm tra tất cả các không gian tên trong các tệp đó và trong tệp Views \ web.config. Đối với các biểu mẫu web, đổi tên Default.aspx (các tệp .cs và trình thiết kế có liên quan sẽ tự động được đổi tên). Các cơ sở mã thay đổi nhưng dòng Kế thừa trong đánh dấu thì không. Thay đổi bằng tay. Kiểm tra kỹ trang thiết kế. Đôi khi (VS2005-8?) Trang thiết kế không phản ánh sự thay đổi trong không gian tên. Không thấy điều này trong năm 2010+.

Một vấn đề khác là khi tất cả hoạt động trong VS hoặc trên PC cục bộ của bạn chứ không phải khi bạn triển khai. Điều này có thể là do môi trường triển khai không có cấu trúc giống nhau. Ví dụ: lỗi xảy ra nếu bạn đặt mã của mình vào một thư mục ảo trong thư mục ứng dụng, nhưng nó không xảy ra nếu bạn tạo một thư mục ứng dụng mới và đặt tất cả các tệp của bạn vào đó. Tôi không hiểu điều này, vì tôi đã thiết lập thư mục con / ảo mới có cùng quyền (hoặc tôi nghĩ vậy) và (tôi tin) nhóm ứng dụng sẽ hoạt động giống nhau cho mọi thứ trong một thư mục ứng dụng nhất định.

Trong trường hợp của tôi, tôi cũng đã có một thư mục bin với các hội đồng được cập nhật từ các hội đồng khác trên máy chủ IIS. Một lần nữa, đảm bảo rằng chúng được chạy trong một thư mục ứng dụng riêng biệt dẫn đến thành công.

HTH


2

Tôi gặp vấn đề này mỗi khi tôi lưu một tệp được biên dịch động (ascx, aspx, v.v.). Tôi đợi khoảng 8-10 giây thì nó biến mất. Thật là khó chịu.

Tôi nghĩ rằng đó có thể là sự cố IIS Express vì vậy tôi đã thử trong máy chủ dev sẵn có và vẫn nhận được nó sau khi lưu tệp. Tôi đang chạy một ứng dụng MVC, tôi cũng đang sử dụng T4MVC, có lẽ đó là một yếu tố ...


2

Tôi đã có lỗi bực bội này trong môi trường phát triển trong Visual studio, và hóa ra lý do khá ngu ngốc. Nói tóm lại, nếu bạn có nhiều dự án / trang web trong giải pháp: hãy đảm bảo rằng cổng bạn đang cố truy cập trang web giống như được định cấu hình trong Thuộc tính dự án-> Web

Trong trường hợp của tôi, lỗi xảy ra do tôi đang sử dụng một cổng khác để truy cập trang web (trong trình duyệt) trong khi dự án trong giải pháp được chỉ định một cổng khác. Để giải thích thêm một chút, tôi đã có hai dự án trang web trong giải pháp của mình Website1 (được gán cổng 8001 trong ISS bởi Visual-Studio) và Website2 (được gán cổng 8101 trong ISS bởi Visual-Studio). Vì vậy, mặc dù tôi đang xây dựng Website1, tôi đã cố gắng truy cập trang web bằng locahost: 8101.

Bây giờ tôi cuối cùng đã nhận ra vấn đề, tôi thấy rằng bình luận của @ StingyJack cũng giải quyết vấn đề tương tự.



2

Tôi đã có lỗi này một lần nữa và không có cái nào ở trên làm việc cho tôi. Tôi đã phải loại bỏ nút sau trong tệp .csproj:<VisualStudio>....</VisualStudio> . Đã tải lại VS và nó hoạt động.

FYI, VS đã có thể tạo lại nút và sau đó tôi đã tạo lại trang web trong IIS (thông qua VS) và nó hoạt động hoàn hảo.

Hy vọng điều này sẽ giúp được ai đó.


1

Hãy chắc chắn rằng bạn không cần phải mở dự án MVC như File-> Open Web Site sử dụng File-> Open Project thay thế.


1

Điều làm việc cho tôi là khởi động lại Visual Studio.

Tôi đã thử xây dựng lại thủ công, thực hiện dọn dẹp và xây dựng lại và xóa thư mục bin tất cả đều không hoạt động. Đường dẫn đầu ra của tôi đã được đặt thành bin \


Tôi đã xây dựng lại cấp độ giải pháp nhưng tôi nhận thấy thư mục bin của dự án của tôi trống. Tôi đã xây dựng chỉ trên dự án và đột nhiên tôi có một thư mục bin dân cư. Tôi đã khởi động dự án và nó đã làm việc.
MrBoJangles

1

Nếu bạn thay đổi một không gian tên, hãy đảm bảo nhấp chuột phải và cấu trúc lại.


1

Điều này có thể xảy ra rất thường xuyên nếu bạn thay đổi không gian tên của bạn. Trả lại tên của không gian tên của bạn, giống như trước đây và điều đó sẽ làm cho nó hoạt động!


1

Trong một số trường hợp, các dự án mới bạn tạo không theo mặc định được đặt để xây dựng. Nếu bạn nhấp chuột phải vào giải pháp của bạn, chọn Propertiesvà chọn Configuration Properties| Configurationnút bên trái và đảm bảo dự án của bạn có một dấu kiểm bên dưới Buildcột. Trong trường hợp bình thường, tôi thấy điều này xảy ra theo mặc định. Trong các trường hợp khác (tôi tình cờ có một giải pháp Web Api / Xamarin Android và iOS / Mvc 5 hơi phức tạp thể hiện hành vi này), dấu kiểm không xuất hiện.

Điều này có liên quan đến các câu trả lời khác - nếu lắp ráp web projet của bạn không có sẵn, bạn sẽ gặp lỗi này. Nhưng đây có thể là một tình huống phổ biến, đặc biệt là khi bạn thực sự biên dịch giải pháp của mình - dự án không được xây dựng.


1

Tôi gặp lỗi này vì kiểm soát phiên bản của tôi đã được đặt để bỏ qua thư mục bin của tôi . Rất ngu ngốc, nhưng có lẽ người khác sẽ có lợi.


1
Bạn có muốn bỏ qua thư mục bin, cùng với obj và những thứ khác được xây dựng và không phải là một phần của mã nguồn không?
MrBoJangles

Thông thường, vâng. Nhưng trên trang web cụ thể này, đó là cách duy nhất để đẩy các mục lên máy chủ. Tôi có lẽ nên làm cho câu trả lời của tôi chung chung hơn.
Brent Wagoner

Tôi hoàn toàn có được những tình huống đặc biệt như thế.
MrBoJangles

1

Tôi gặp phải vấn đề này và tôi thấy có đủ loại câu trả lời nhưng không có gì được chấp nhận. Tôi sau một chút phát hiện ra rằng chỉ cần xây dựng trang web trước khi chạy để giải quyết vấn đề của tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.