2014-12-04 28 views
5

Visual Studio 2010 kullanılarak oluşturulan eski bir MVC uygulamasına sahibim. Daha sonra Visual Studio 2013'ü kullanarak MVC 5'e yükselttim ve NuGet paketlerini yükselttim. Bu oluşturur, ancak Visual Studio ile uygulamayı çalıştırdığımda, ana görünümü bulamıyor. Onu Global.asax'a kadar takip ettim ve Application_Start'ın hiçbir zaman çağrılmadığını ve rotaların asla ayarlanmadığını öğrendim.MVC 5 Application_Start Çalışmıyor

Bu sorun hakkında burada sorulan birkaç soru buldum, ancak çözümlerin hiçbiri benim için işe yaramadı.

Application_start not working

Application_Start not firing?

Bu kadar basit görünüyor, ama bu bir çözüm bulamıyorum

. Herhangi bir fikir?

+0

Yükseltme işleminden daha fazlasını yapmak sadece paketlerin güncellenmesinden çok daha fazlası var. Yapmanız gereken bir çok yapılandırma dosyası değişikliği var .. bunları yaptınız mı? –

+0

ASP.MVC'de yeni oldum, ancak [MVC4'ten MVC5'e nasıl geçiş yapılacağı] makalesiyle karşılaştım (http://www.asp.net/mvc/overview/releases/how-to-upgrade-an-aspnet -mvc-4-ve-web-api-proje-aspnet-mvc-5-ve-web-api-2) ve MVC2'den göçün daha kötü olacağını beklerdim – pf1957

cevap

5

Bu sorunu birkaç kez karşı karşıya bıraktım ve birçok geçici çözümü denedim. olduğu benim için çalıştı ,

  1. Başlat bu dosyada uygulamanızı (F5)
  2. sizin global.asax dosyasını açmak (kendi global.asax global.asax.cs değil)
  3. değişim şey ayıklama (Bazı boşlukları veya bir şeyler koymak ve kaydetmek için)
  4. şimdi tarayıcınızda sayfanızı yenileyin.
  5. application_start öğesinin kesme noktalarına ulaşacağını göreceksiniz.

Çözüm 2

  1. temizle geçici
  2. Yeniden IIS
  3. Sonra birlikte başvurunuzu takmak uygulamanızın
  4. Başlat hata ayıklama (iisreset'i istemi komuta ve söylemek gidin) dizin süreci. Aynı başıma
+4

Ben bulduğum Globalasax'a baktıktan sonra sorun. Visual Studio'm bir Global.asax ve bir Global.asax.cs'ım olduğunu söyledi. Aslında Windows Explorer ile koduma baktığımda, bir Global.asax dosyası bulunmadığı ve yalnızca bir Global.asax.cs dosyası olduğu ortaya çıktı. Bunun mümkün olduğunu düşünmedim, ancak mevcut dosyayı sildim ve yeni bir Global.asax dosyası oluşturdum ve her şey çalışmaya başladı. – Filjan

4

, Global.asax.cs Benim durumumda gelince

, Inherits nitelik Yani Global.asax

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

eksikti ... hiç denir değil ben değiştikten sonra böyle çalışır! Application_Start

  • içinde

    <%@ Application Codebehind="Global.asax.cs" Inherits="MyAwesomeApp.MvcApplication" Language="C#" %> 
    
  • 2
    • yerleştirin kesme noktası açın, Web.config
    • ayıklama başvurunuz (F5) sizin Web.config içinde
    • Değişim şey
    • (boş satır ekleyerek yeterlidir) Web sayfanızı yenileyin
    • Application_Start tetiklenir

    Yalnızca IIS'yi sıfırlama, Application_Start tetiklendikten sonra hata ayıklayıcı eklendiğinden beri hile yapmaz.