Thông báo lỗi phân tích cú pháp: Không thể tải loại 'TestMvcApplication.MvcApplication'


152

Tôi nhận được lỗi sau trên một trong các máy chủ sản xuất của chúng tôi. Không chắc chắn tại sao nó hoạt động trên máy chủ DEV?

Lỗi phân tích cú pháp Mô tả : Đã xảy ra lỗi trong quá trình phân tích tài nguyên cần thiết để phục vụ yêu cầu này. Vui lòng xem lại chi tiết lỗi phân tích cụ thể sau đây và sửa đổi tệp nguồn của bạn một cách thích hợp.

Thông báo lỗi phân tích cú pháp : Không thể tải loại 'TestMvcApplication.MvcApplication'.

Lỗi nguồn :

Dòng 1: <% @ Application Codebehind = "Global.asax.cs" Kế thừa = "TestMvcApplication.MvcApplication" Language = "C #"%>

Tệp nguồn: /global.asax Dòng: 1

Không chắc chắn nếu có ai gặp phải lỗi này trước đây và cách khắc phục, nhưng tôi đã đi đến cuối cùng. Bất kỳ trợ giúp sẽ được đánh giá cao.

Tôi cũng cần đề cập rằng đây là mã được xuất bản, vì vậy tất cả được biên dịch. Có thể có cái gì đó sai với cài đặt trình biên dịch của tôi?



15
Thoát Visual Studio và khởi động lại đã sửa nó cho tôi.
RickAndMSFT

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

Điều này đã xảy ra với tôi khi triển khai một ứng dụng làm việc trước đây. Một cái gì đó trong IIS (7) rơi vào trạng thái xấu; Đặt lại IIS đã khắc phục sự cố.
BurnsBA

Câu trả lời:


169

Không có câu trả lời nào khác làm việc cho tôi. Tôi đã sửa lỗi của mình bằng cách thay đổi đường dẫn đầu ra của dự án web. Tôi đã có nó được đặt thành bin \ debug nhưng dự án web không hoạt động trừ khi đường dẫn đầu ra được đặt thành "bin"


Đây là vấn đề của tôi, khiến tôi rất đau buồn vì không có giải pháp nào khác ở đây có hiệu quả với tôi ..
Zack

3
+1 Đây cũng là vấn đề của tôi. Thông báo lỗi và trợ giúp về điều này về cơ bản là không tồn tại. Cảm ơn.
Noldorin

4
Đối với tôi, bin \ đã báo lỗi, tôi chỉ đổi nó thành bin. va no đa hoạt động.
Nanu

1
Đối với tôi, vấn đề là tôi đã vô tình chọn x86 làm nền tảng hoạt động và đối với cấu hình này, cài đặt dự án đã sai (Bin \ Debug \ x86). Thay đổi trở lại bất kỳ CPU đã khắc phục vấn đề. Nhưng thay đổi đường dẫn đầu ra cũng có hiệu quả.
Lars Udengaard

13
Vì vậy, việc thay đổi Đường dẫn đầu ra từ bin \ Debug \ sang bin sẽ xóa lỗi cho tôi. Nhưng câu hỏi thực sự là: "Tại sao bin \ Debug không hoạt động ngay từ đầu?" Khi tôi xây dựng cấu hình Gỡ lỗi hoặc Phát hành, tôi muốn các tệp được tạo trong thư mục bin thích hợp.
Ellesedil 10/03/2015

96

Tôi đã có điều này một vài lần. Điều này đặc biệt gây khó chịu vì nó ngay lập tức và thông báo lỗi không có manh mối gì về vấn đề có thể là gì.

Để khắc phục điều này, nhấp chuột phải vào tiêu đề dự án của bạn, trong trường hợp này là "TestMvcApplication" và nhấp vào xây dựng .

Điều này buộc mã phải biên dịch trước khi bạn chạy nó. Đừng hỏi tôi tại sao, nhưng đây là giải pháp 100% thời gian cho tôi.


4
+1 tôi cũng vậy. Và tôi đã thử một số thứ, và "những thứ" tôi có nghĩa là "những phỏng đoán hoang dã". Câu trả lời tốt!
Bob Kaufman

Trong trường hợp của tôi, tôi đã có IIS trỏ đến một trang web MVC chưa được xây dựng trước đó. Doh. Rõ ràng, xây dựng nó đã sửa nó.
Edgar

5
Tôi cũng gặp lỗi này khi thay đổi tên của dự án nhưng quên thay đổi không gian tên mà global.asax.cs đang sử dụng.
đắt tiền

1
Bạn là một quý ông và một ông chủ, thậm chí không nghĩ đến việc xây dựng nó. Cảm ơn!
Ben Black

2
Trong trường hợp của tôi, dự án của tôi không được thiết lập để xây dựng Thuộc tính cấu hình giải pháp vì một số lý do: i.imgur.com/kp73sGQ.png
Matthew Lock

24

Tôi đã thấy rằng khi bạn buộc phải sử dụng Trình quản lý cấu hình để chạy dưới x86 hoặc bất kỳ thứ gì khác ngoài cài đặt "ngoài hộp" của dự án tiêu chuẩn, IDE sẽ tạo ra một loạt các thư mục con trong thư mục bin cho dự án web.

Khi điều này bắt đầu xảy ra, nếu máy chủ Cassini đang chạy, thì dự án không phục vụ đúng cách.

Tôi đã sửa nó bằng cách vào các thuộc tính của Dự án Web -> Xây dựng cài đặt và thay đổi Đường dẫn đầu ra thành bin \

Sau đó xây dựng lại và tất cả các công trình như nó cần.


Bingo, đây là giải pháp hiệu quả với tôi. Cảm ơn bạn!
moshjeier

Làm việc cho tôi là tốt - đây không phải là một lỗi?
Matt Wilko

Và kiểm tra xem CheckBox có được kiểm tra bản dựng hay không
Daniel Bişar

Nếu bạn đã từng ở Ohio hmu vì tôi đang mua cho bạn 10 loại bia, đã xem xét các đề xuất khác nhau trong hơn 3 giờ
Andrew After Chiều-Delight Hayde

9

Sau một thời gian dài tìm kiếm, tôi đã tìm ra vấn đề thực sự ở đây.

Các hội đồng đã bị hỏng bởi ứng dụng khách FTP mà tôi đã sử dụng để tải các tệp lên một môi trường được lưu trữ.

Tôi đã thay đổi máy khách FTP của mình và tất cả đều hoạt động như dự định.


9

Tôi gặp vấn đề tương tự: của tôi là vì dự án web có mục tiêu nền tảng là x86. Tôi đã chạy trên máy 64 bit; các dự án khác trong giải pháp được đặt thành 64 bit.

Để kiểm tra cài đặt của bạn, nhấp chuột phải vào dự án và chọn Thuộc tính. Trên tab Xây dựng, kiểm tra giá trị của "Mục tiêu nền tảng".

Đồng thời kiểm tra cấu hình bản dựng của giải pháp (Menu xây dựng> Trình quản lý cấu hình) để kiểm tra tất cả các dự án của bạn đang được xây dựng trên cùng một nền tảng.

Trong cả hai trường hợp, hãy đảm bảo bạn kiểm tra cả cài đặt cho chế độ gỡ lỗi và chế độ phát hành - nếu không bạn sẽ làm cho nó hoạt động trên máy của mình chứ không phải khi bạn triển khai nó!


Tôi được yêu cầu kết hợp câu trả lời này với câu trả lời từ @brockstaylor dưới đây để giải quyết vấn đề này trên Umbraco 7.1.6
devinbost

9

Tôi đã thử tất cả các giải pháp trên nhưng không có may mắn. Thêm dòng <add assembly="*" />vào web.config đã sửa nó cho tôi. (Bạn cũng có thể thêm vào tệp machine.config hoặc root web.config của phiên bản .NET framework phù hợp, tôi đã không thử nó) Nhờ MS Support cho giải pháp.


Đây là vấn đề của tôi. Tôi đã <assemblies><clear/>...phải ngăn kế thừa các tham chiếu lắp ráp từ ứng dụng mẹ trong ứng dụng IIS lồng nhau.
Craig Celeste

Tôi không bao giờ cần điều này .. hơn, ngoài màu xanh, tôi gặp phải vấn đề này trong một trong những máy dev của tôi. Không biết tại sao nó bắt đầu, nhưng đây là điều duy nhất giải quyết nó
Pascal

9

Tôi đã có những gì trông giống như lỗi tương tự. Tôi đã thử nhiều đề xuất từ ​​nhiều trang chỉ để tìm ra vấn đề là tôi đã đặt trang web thành phiên bản sai của .Net

Cho dù có bao nhiêu biên dịch lại hoặc mọi người nói 'vấn đề cấu hình', không ai đưa ra quan điểm rằng phiên bản .net cần phải được kiểm tra.


8

CNTT xảy ra với tôi khi tôi đổi tên dự án / giải pháp của mình. Chuyển đến thư mục của dự án trong windows explorer (thoát khỏi VS). Tìm và mở tệp Toàn cầu (có thể bạn sẽ tìm thấy 2 tệp, mở không có phần mở rộng ".asax.cs") và chỉnh sửa dòng lỗi với đường dẫn chính xác. Chúc may mắn!


Đó là một câu trả lời tuyệt vời, nên được nâng cao hơn nữa - việc đổi tên ứng dụng xảy ra và những lỗi như vậy thật khó chịu!
Bartosz

7

Tôi đã gặp vấn đề chính xác như vậy vài ngày trước - theo như tôi có thể nói đó là sự cố với IIS 64 bit chạy ứng dụng web 32 bit. Chúng tôi đã thay đổi máy chủ sản xuất của mình thành 32 bit và vấn đề này đã biến mất.


5

Đảm bảo không gian tên mặc định của bạn trong thuộc tính dự án web giống với không gian tên trong Global.asax.cs. Tôi đã sửa đổi không gian tên mặc định để biến nó thành một không gian con, thay đổi lại nó đã khắc phục vấn đề này cho tôi.


4

Để hoàn thiện, tôi đã đưa vào vấn đề của mình và cách giải quyết:

Nếu bạn cũng như tôi và có omephandlers qua web.config và bạn đã chuyển hướng từ global.asax.cs (có thể trong Session_Start ()) như trong trường hợp của tôi, bạn sẽ gặp lỗi này nếu dự án khởi động của bạn không có tham chiếu được xác định. mục tiêu mà omephandler của bạn đang chỉ !! (nhưng bạn sẽ không nhận được lỗi xây dựng, chỉ là lỗi thời gian chạy)

Vì thế:

  1. Kiểm tra kỹ web.config của bạn cho bất kỳ mục bên ngoài
  2. Kiểm tra kỹ dự án khởi động của bạn có tất cả các tài liệu tham khảo cần thiết.

Chúc mừng.


Tôi đã thêm một điều khiển Bộ công cụ Ajax nhưng chưa thêm tham chiếu vào DLL. Cảm ơn bạn # 2.
pixelmeow

4

Lần duy nhất tôi trải nghiệm điều này là khi khung MVC không được cài đặt trên máy chủ. Trường hợp đó như thế nào?

Một phần Trang bị thiếu trong Views \ Web.config cũng có thể bị lỗi.


Không chắc chắn, nó là một máy chủ được lưu trữ và theo họ, .NET .NET MVC hoạt động tốt.
Riaan Engelbrecht

Tôi tìm thấy một người khác (với chú Google) đã gặp phải một lỗi tương tự vì một lý do khác. Đã thêm liên kết để trả lời. Chúc may mắn!
Daniel Elliott

3

Tôi đã có cùng một lỗi và không có giải pháp nào của bạn giúp được. Tôi nghĩ vấn đề của tôi chỉ đơn giản là cái tên mà tôi đã chọn cho dự án. Tôi đã đặt tên cho dự án của mình là 'giao diện' mà khi tôi gặp lỗi phân tích cú pháp, nó nói rằng nó không thể tải:

Dòng 1: <% @ Application Codebehind = "Global.asax.cs" Kế thừa = " @interface .MvcApplication" Language = "C #"%>

Trường hợp có dấu '@' vì một số lý do. Tôi đoán từ 'giao diện' được dành riêng cho một thứ khác và nó đã thêm biểu tượng @ nhưng điều đó rõ ràng đã phá vỡ một cái gì đó. Tôi đã xóa dự án và tạo một cái mới với một tên khác không có vấn đề.


3

Đây là một số khác:

  1. Tôi đã làm việc trên một dự án api web đang sử dụng localhost: 12345.
  2. Tôi đã kiểm tra một nhánh khác từ kiểm soát nguồn có chứa cùng một dự án.
  3. Tôi đã chạy dự án trên chi nhánh và nhận được lỗi.
  4. Tôi đã đi đến "Thuộc tính> Web> Url dự án" và nhấp vào "Tạo thư mục ảo"
  5. Một hộp thoại xuất hiện cho tôi biết rằng url được ánh xạ tới một thư mục khác (thư mục cho dự án ban đầu).
  6. Tôi bấm Okay và thư mục ảo đã được ánh xạ lại.
  7. Lỗi đã biến mất.

Tôi hy vọng điều đó sẽ giúp được ai đó ở đâu đó :)


Điều đó thực sự đã làm điều đó cho tôi!
ra170

2

Tôi đã có rất nhiều vấn đề và lỗi cần giải quyết, một số câu trả lời ở trên đã giúp ích, nhưng mẹo cuối cùng giúp nó hoạt động với tôi là: Đi đến dự án của bạn, nhấp vào thuộc tính.

Chuyển đến tab Gói / Xuất bản Web và đảm bảo cấu hình được đặt thành Phát hành và Nền tảng cho Tất cả các Nền tảng.

Cuối cùng hãy đảm bảo rằng "Các mục cần triển khai (áp dụng cho tất cả các phương thức triển khai)" được đặt thành "Tất cả các tệp trong thư mục dự án này"

Nó sau đó làm việc tốt cho tôi.


2

Vấn đề này rất phức tạp vì nó dễ nhầm lẫn nguyên nhân gốc rễ với bất kỳ nguyên nhân trực tiếp nào xảy ra.

Trong trường hợp của tôi, nguyên nhân ngay lập tức là giải pháp được cấu hình để sử dụng NuGet Gói Khôi phục, nhưng máy chủ không được kết nối với internet, vì vậy NuGet không thể tải xuống các phụ thuộc khi xây dựng lần đầu tiên.

Tôi tin rằng nguyên nhân gốc rễ đơn giản là giải pháp không thể giải quyết chính xác các phụ thuộc. Nó có thể là một cấu hình đường dẫn không chính xác, hoặc phiên bản sai của một hội đồng, hoặc các cụm xung đột hoặc triển khai một phần. Nhưng trong mọi trường hợp, lỗi chỉ đơn giản là nói rằng nó không thể tìm thấy loại được chỉ định trong global.asax vì nó không thể tạo được nó.


2

Đảm bảo rằng Không gian tên trong Global.asaxtệp khớp với trong Global.cstệp tức là

Toàn cầu.asax: Some.Website.Webapplication

Global.cs: Some.Website(trừ ' Ứng dụng web ')


2

Tôi đã thử hầu hết các câu trả lời trên và chúng không hoạt động. Vì một số lý do, chỉ cần đóng và mở lại VS đã khắc phục sự cố cho tôi.


2

Vấn đề của tôi đã được giải quyết khi tôi chuyển đổi trong IIS thư mục vật lý chứa các tệp thành một ứng dụng. Nhấp chuột phải> chuyển đổi sang ứng dụng.


1

Đối với tôi, đó là vì tôi đã tạm thời loại trừ tệp khỏi dự án. Tôi chỉ đơn thuần đưa nó trở lại trong dự án và sau đó nó hoạt động.


Của tôi cũng vậy, tệp giải pháp đã bị xóa một vài tệp và tôi không nhận ra cho đến khi tôi đóng và mở lại Visual Studio
Fiona - myaccessible.website

1

Trong trường hợp của tôi, tài liệu tham khảo System.Web.MVC đã bị thiếu trong dự án của tôi. Nhưng sau khi thêm vấn đề tham chiếu là như nhau nên tôi đã kiểm tra các thuộc tính của thư mục Bin của mình, đó là ReadOnly. Chỉ sau khi làm cho nó có thể ghi, mọi thứ hoạt động tốt.


1

Tôi đã gặp lỗi vì tôi đã triển khai ứng dụng dưới dạng thư mục ảo và tôi đã gặp lỗi trình phân tích cú pháp "không thể tải loại" sau đó tôi đã triển khai ứng dụng dưới dạng trang web và tôi không gặp lại lỗi đó.


0

Không có câu trả lời nào khác giải quyết lỗi này cho tôi.
Tôi đã tìm thấy một giải pháp hiệu quả, mà tôi đề xuất cho những người có cùng hoàn cảnh:

  1. Đóng Visual Studio
  2. Duyệt đến dự án \ yourProject \ yourProject
  3. Đổi tên Web.Debug.config và Web.Release.config
  4. Xây dựng lại và chạy ứng dụng của bạn

Đã xóa chúng ... và bây giờ chúng không xuất hiện lại.
FiresSquadWitness

0

Tôi chưa bao giờ thực sự đi đến tận cùng của những gì gây ra nó cho tôi. Tôi nghĩ rằng một nơi nào đó tôi đã bị thiếu một số tập tin. Tôi đã gặp lỗi sau khi xuất bản lên một máy chủ mới. Cuối cùng, tôi đã sao chép trang web từ trang web làm việc. Sau đó, trang web hoạt động và tiếp tục xuất bản lên máy chủ mới.


0

Thực hiện theo các bước sau:

  1. Xây dựng
  2. Quản lý cấu hình
  3. Đặt dự án AnyCPU
  4. Quay lại để tạo
  5. Sẵn sàng, sau này chỉ cần làm theo các bước tương tự để chuyển nó sang x86 hoặc x64

0

Đối với tôi, tôi đã có một DLL kèm theo dự án của tôi phải chạy trong môi trường 32 bit.

Máy chủ được định cấu hình để chạy trang web ở chế độ 32 bit, nhưng tôi không thể chạy ứng dụng trên máy 64 bit của mình vì localhostthư mục không được chỉ định để chạy ở chế độ 32 bit.


0

Tôi chỉ có một vấn đề tương tự.

Lý do là tôi đã thay đổi file.aspx.c và phải xây dựng lại sạch sẽ. Sau đó mọi thứ đã hoạt động.


0

Vấn đề của tôi là tôi đã cố gắng tạo một ứng dụng web ASPX trong thư mục con của thư mục đã có tệp web.config và

Vì vậy, tôi đã mở thư mục mẹ trong Visual Studio dưới dạng Trang web (Mở> Trang web) Tôi có thể thêm một trang ASPX mục mới mà không gặp sự cố phân tích / tải.


0

Đối với tôi, sự cố chỉ xảy ra ở một số liên kết (dài) nhất định trong trang web và được theo dõi xuống URLScan có cấu hình mặc định giới hạn độ dài URL là 260.


0

Tôi đã có cùng một vấn đề. Cố gắng:

Nhấp chuột phải vào dự án và chọn Clean, sau đó nhấp chuột phải vào nó một lần nữa và chọn Rebuild và chạy dự án để xem nó có hoạt động không.

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.