2014-12-04 15 views
5

Tôi có một ứng dụng MVC cũ được xây dựng bằng Visual Studio 2010. Sau đó tôi nâng cấp lên MVC 5 bằng Visual Studio 2013 và nâng cấp các gói NuGet. Nó xây dựng, nhưng khi tôi chạy ứng dụng thông qua Visual Studio, nó không thể tìm thấy khung nhìn nhà. Tôi truy tìm nó trở lại Global.asax và phát hiện ra Application_Start không bao giờ được gọi và các tuyến đường không bao giờ được thiết lập sau đó.MVC 5 Application_Start Không chạy

Tôi đã tìm thấy một vài câu hỏi được hỏi ở đây về vấn đề này, nhưng không có giải pháp nào phù hợp với tôi.

Application_start not working

Application_Start not firing?

Điều này có vẻ đơn giản như vậy, nhưng tôi không thể tìm thấy một giải pháp cho việc này. Bất kỳ ý tưởng?

+0

Có rất nhiều thứ khác để nâng cấp hơn là chỉ nâng cấp các gói .. có rất nhiều thay đổi về tệp cấu hình bạn cần thực hiện .. bạn đã làm những điều đó chưa? –

+0

Tôi mới trong ASP.MVC, nhưng tôi đã gặp bài viết [cách di chuyển từ MVC4 sang MVC5] (http://www.asp.net/mvc/overview/releases/how-to-upgrade-an-aspnet -vc-4-và-web-api-project-to-aspnet-mvc-5-và-web-api-2) và tôi mong rằng di chuyển từ MVC2 sẽ tồi tệ hơn – pf1957

Trả lời

5

Tôi đã gặp sự cố này vài lần và đã thử nhiều cách giải quyết. những gì làm việc đối với tôi là,

  1. Bắt đầu gỡ lỗi ứng dụng của bạn (F5)
  2. mở tập tin global.asax của bạn (global.asax của nó không Global.asax.cs)
  3. thay đổi một cái gì đó trong tập tin đó (đặt một số khoảng trắng hoặc một cái gì đó và lưu nó)
  4. bây giờ làm mới trang của bạn trong trình duyệt của bạn.
  5. bạn sẽ thấy application_start của mình sẽ đạt đến điểm ngắt.

Giải pháp 2

  1. rõ ràng tạm thời thư mục
  2. Khởi động lại IIS (đi đến command prompt và nói iisreset)
  3. Bắt đầu gỡ lỗi của ứng dụng của bạn
  4. Sau đó đính kèm ứng dụng của bạn với quá trình.
+4

Sau khi xem Globalasax của tôi, tôi đã tìm thấy vấn đề. My Visual Studio cho biết tôi có Global.asax và Global.asax.cs. Khi tôi thực sự nhìn vào mã của tôi với Windows Explorer nó bật ra rằng tôi không có một tập tin Global.asax và chỉ có một tập tin Global.asax.cs. Tôi không nghĩ rằng điều này là có thể, nhưng tôi đã xóa các tập tin hiện có và tạo một tập tin Global.asax mới và tất cả mọi thứ bắt đầu làm việc. – Filjan

4

Cùng xảy ra với tôi, Global.asax.cs không được gọi là ở tất cả ...

Đối với trường hợp của tôi, thuộc tính Inherits đã mất tích trong Global.asax

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

Vì vậy, sau khi tôi thay đổi nó như vậy, nó hoạt động!

<%@ Application Codebehind="Global.asax.cs" Inherits="MyAwesomeApp.MvcApplication" Language="C#" %> 
2
  • Nơi breakpoint trong Application_Start
  • Mở Web.Config của bạn
  • gỡ lỗi ứng dụng của bạn (F5)
  • Thay đổi bất cứ điều gì trong Web.Config của bạn (thêm dòng trống là đủ)
  • Làm mới trang web của bạn
  • Application_Start sẽ được kích hoạt

Đặt lại IIS một mình sẽ không thực hiện thủ thuật vì trình gỡ lỗi được đính kèm sau khi Application_Start được kích hoạt.

Các vấn đề liên quan