Hata: «MvcApplication türü yüklenemedi»


240

Hatayı alıyorum

MvcApplication türü yüklenemedi

web sitemi çalıştırmaya çalıştığımda.

Nasıl düzeltilir?


35
Bu hatayı rastgele bir gün yapı sunucumuzda aldım. manuel yeniden yapılanma bunu çözdü.
Zack,

1
Çıktı yolu, yapı sekmesindeki proje özelliklerinde ayarlanır
silasdavis

8
global.asax dosyasını silin ve yeni bir dosya ekleyin.
DotNetGeek

4
Yeni projenin derleme için etkin yapılandırmada seçilmediği ortaya çıktı.
JGeerWM

4
Projeyi yakın zamanda eklediyseniz veya yayınlama yapılandırmasını yakın zamanda değiştirdiyseniz (yani AnyCPU'dan x64'e geçtiyseniz), projeyi çalıştırdığınızda inşa edilmemiş olabilir. YAP-> YAPILANDIRMA MÜDÜRÜ'ne gidin ve oluşturma sütununda onay kutusunun işaretli olduğunu kontrol edin. Şimdi bu sorunu yaşadım Ayrıca uygulamayı çalıştırırken kesme noktalarınızın açık daireler olduğunu fark edeceksiniz. Bence bu 32 bit tercih işlemci mimarisi için .net 4.5.1 için varsayılan inşa sonucu. Sadece x64'ü işaretlerseniz bir sorun
David Bridge

Yanıtlar:


115

Göründüğü kadar aptalca, her şeyi denedi ve işe yaramadı ve sonunda tekrar çalıştığını görmek için VS2012'yi yeniden başlattı.


1
LMFAO, burada belirtilen her şeyi denedikten sonra benim için de çalıştı ve işe yaramadı! Teşekkürler ve +1!
Yustme

Burada da aynı sorun var. Hata, birleştirme işleminden sonra ortaya çıktı ve VS2012 yeniden başlatılıncaya kadar gider.
StuartQ

1
Benim için ne olabilirdi ki, bağlantı noktası projeyi derlemeyen ikinci bir Visual Studio örneği tarafından kullanılmıştı.
Kil Lenhart

Benim için de çalıştı. Ne saçmalık.
PAWAN RAJ Shakya

5 yıl sonra VS2017 ve bu hala çözüm. : /
Sagiv bg

105

-Benim için düzeltme derleme sekmesindeki çıkış yolunu değiştirmekti. Çıkış yolunu değiştirdim bin\ve hata gitti.

-Başka bir düzeltme, yanlış başlangıç ​​proje setine sahip olmanız olabilir.


8
Bu da bizim meselemizdi. Daha önce Debug \ x86 \ bin
t3rse

4
HA! Bu iki yıl içinde ikinci kez bu sorunla bu makaleye gittim, ilk kez en iyi cevap, ikinci kez bu cevap oldu.
Ben Lesh

1
Teşekkürler! Bu da beni ısırdı. Bazı uyarıları silmek için platformu değiştirmiştim ve çıkış yolu bilmeden değişti.
camainc

6
Bu benim için doğru cevaptı ... Visual Stupido'nun neden bu şekilde davrandığına dair bir fikrin var mı?
andreapier

1
Evet, işte bu. `Bin 'olarak değiştirmek her şeyin beklendiği gibi çalışmasını sağlar. @andreapier: Evet, VS2012 de bu aptalca davranıyor gibi görünüyor. Birisi en kısa sürede düzeltin! :)
şimdi adlandırılmaması gereken o.

82

Aynı hatayı alıyordum ve burada ve başka yerlerde hiçbir şey işe yaramadı. Global.asax.cs kaynak kodunu, projenin farklı bir adı olan önceki bir sürümünden kopyaladığımı öğrendim. Yani namespace Testolmalıydı namespace Test.WebUI. Tabii aptalca bir hata ve bunu yazmak için biraz utanıyorum! Ancak başka birinden benzer bir hatanın da bu önemsiz yönü kontrol etmesine neden olabileceği ümidiyle yazmak.


Teşekkürler, Vipul. Aynı şeyi yaptım ve sonuç olarak çok fazla iş kaybettiğimi düşündüm. Sadece ad alanı adını değiştirmek benim pastırma kurtardı
xiecs

2
Ben de aynısını yaptım. Global.asax'ı bir metin düzenleyicisinde açtım ve ad alanı sorununu çözdüm. Teşekkürler
Kayvan Karim

6
Ben de aynısını yaptım. Sadece herkes için detaylandırmak için: Aslında otomatik olarak oluşturulan "MvcApplication1" adlı bir test projesi vardı. Daha sonra "MyTest" için "MvcApplication" ad alanının genel bir yerine yaptı. Not Defteri'nde Global.asax sonra Inherits = "MyTest.MvcApplication" değiştirmek gerekiyordu
PabloInNZ

Altın vermenin bir yolu olsaydı,
45'te shanabus

53

Sadece çözümünüzü manuel olarak oluşturun.

Yerel IIS kullanıyorsanız, IIS yöneticisinde web sitesi kaydını silmeyi ve ardından el ile yeniden oluşturmayı deneyin.


Bu benim için kazanan oldu, siteyi repo'dan düşürdüm ve iis kurdum, ancak IIS'de hiçbir zaman bir inşaat yapmadım
Anthony Main

31

[Sorudan alınmıştır]

Bu hatayı alıyorsanız: "MvcApplication türü yüklenemedi", projenizin Çıktı yoluna bakın ve 'bin \' olarak ayarlandığından emin olun. Sorun, varsayılan konumda değilse, AspNetCompiler dosyaları bulamıyor olmasıdır.

Çıktı klasörünü değiştirmenin bir diğer yan etkisi, kodunuzda hata ayıklayamayacağınız ve Derleme bilgisinin bulunamadığını belirten bir mesaj gelmesidir.


1
Farklı yapı yapılandırmaları arasında normal olarak ayrıldığında bu biraz garip görünüyor.
nicodemus13

Varsayılan olarak ayrılmıştır, ancak birçok kişi bunları tek bir klasöre değiştirir, böylece sürüm ve hata ayıklama, çıktıya (yükleyiciler, vb.) Başvuran farklı bir proje için aynı konumda olur.
StingyJack

Bu sorunun IIS Express'e özgü olup olmadığını merak ediyorum. Sadece bizim yeni başlayanlar birinin üzerine vidalanmış çünkü neyse, bunu anladım nedeni: Ben değişmişti biniçin bin\Debugve bin\Releaseancak eski dosyalar benim hâlâ binben herhangi bir sorun görmemişti bu yüzden klasörün. Tabii ki, temiz bir ödeme yaparsanız ve bu dosyaları inşa ederseniz sizin için mevcut değildir, bu yüzden patlar.
Bart

15

Aynı sorunu yaşadım ve aşağıdaki adımlarla çözdüm

  1. Proje özelliklerine git
  2. "Derleme" sekmesinde, çıkış yolunu "bin \" olarak ayarlayın

1
Bunun için çok teşekkür ederim, ayarlanmayan kesme noktalarıyla karşılaştığım bir sorunu düzeltti!
Chris

Benim için işe yarayan buydu. Kendim keşfettim ama yine de teşekkürler.
Alexandre

Kahretsin! Bu bir gün kazandırır.
ske

14

Ahh bu sinir bozucuydu.

Elektrik kesintisinden sonra bu hatayı aldım ve projeme geri döndüm.

VS'yi yeniden başlatmayı denedim. Çıkış yolunu \ bin olarak ayarlamayı denedim. İsim alanlarını kontrol ettim.

Ama benim için işe yarayan çözümü yeniden inşa etmekti.

Yeniden Oluşturma Çözümü !!!


13

Benim çözümüm: Çünkü problemi ben yarattım! Global.asax.cs içindeki ad alanını değiştirmiştim

Global.asax'taki Devral özniteliği değerini de değiştirmeniz gerekir.


3
Ben de bu problemi yaşadım. Visual Studio, işaretlemedeki miras özniteliklerindeki ad alanlarını ve sınıfları yeniden düzenleyecektir.
csharpforevermore

Burada aynı. Ad alanlarını yeniden adlandırırken, shift-alt-F10'u değiştirdiğinizden emin olun veya yeniden adlandırmak için sağ tıkladığınızda, tüm örnekleri sizin için güncelleyecektir.
Rob

Bu benim için çalıştı, ancak çözümün nerede uygulanacağını bulmak zordu. Global.asax dosyasına erişmek için bir 'Tümünü Bul' yaptım çünkü Visual Studio düzenleyicisinde Global.asax'a çift tıkladığınızda, aslında .asax dosyasının arkasındaki kod olan Global.asax.cs dosyasını alırsınız. .Cs uzantısına dikkat edin. CTRL-F'ye gidin ve Global.asax'ı (.cs olmadan) arayın ve devralmayı ad alanınızla eşleşecek şekilde değiştirin.
GerardV

9

Global.asax'ta sağlanan bilgilerin arkasındaki kodu kontrol edin. Sınıfın arkasındaki kodunda doğru bir şekilde işaret etmelidirler.

global.asax örneği:

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

arkasındaki örnek kod:

   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. Başarısız olan çözümün içinde projeye sağ tıklayın .
  2. Projeyi Kaldır
  3. Projeyi Yeniden Yükle
  4. Proje Oluştur
  5. Yeniden Oluşturma Çözümü

5

Bu, IIS Express'iniz aynı bağlantı noktası atamasını kullanan eski / farklı bir projeye sahipse / barındırıyorsa, projeyi görsel stüdyoda çalıştırırken de olabilir.

Bunu düzeltmek için, bu proje için bağlantı noktası atamasını değiştirebilir veya IIS Express'i kapatabilirsiniz.


5

IIS express'te barındırıyorsanız ve projenizi iki farklı konumda açıyorsanız, bu hatayı görebilirsiniz.

Çözüm gidip Project/Properties/Web/Serverstıklamaktır Create Virtual Directory.


4

Benim için çözüm, Mvc projesine sağ tıklamak, özellikleri seçmek ve Sanal Dizin Oluştur'u tıklamaktı.

Projenin yanlış klasöre eşlendiğini belirten bir mesaj kutusu belirdi ( farklı bir TFS projesinin klasörünü gösterdi . Doğru klasöre eşleme seçeneği verdi.


1
Bahşiş için teşekkür ederim, benim için neden tfs taşındı oldu. Çözüm klasörünün eşlemesini kaldırıp uygulamanın çalışmasını sağlamak için tekrar eşlemem gerekiyordu!
adhie

4

bin/Yapım sekmesinde zaten vardı . Projenin başka bir kopyasından global.asax aldım, ancak bu işe yaramadı.

Sonunda benim için çalışan çözüm, bin/klasörü kaldırmak ve aynı ada sahip yeni bir boş klasör oluşturmaktı.


1
Bu soruya bir cevap sağlamaz. Bir yazardan eleştiri veya açıklama istemek için gönderilerinin altına bir yorum bırakın - her zaman kendi yayınlarınıza yorum yapabilirsiniz ve yeterli bir üne sahip olduğunuzda herhangi bir yazı hakkında yorum yapabilirsiniz .
JLRishe

@brasofilo Yanlış arama yapmış olabilirim, ancak orijinal sorudaki ciddi bilgi eksikliği göz önüne alındığında, bu OP'nin sorunu için bir çözüm değildir ve bu cevap bir yorum olarak eklenebilecek kadar kısadır. Öte yandan, asıl soru uzun zaman önce gönderildi ve burada bir ton "benim için işe yarayan şey" cevapları var, bu yüzden zor bir çağrı. Bu soru ve cevapları biraz temizlik gerektirebilir.
JLRishe

@JLRishe, evet, evet, bu bir Soru-Cevap karmaşası. Bu cevap, en çok oylanan ikinci sorunun kopyası bile olabilir, ancak emin değilim. Q'yu en az 10rep kilit istediğini işaretleyeceğim.
brasofilo

4

Bunun zaten birçok çözümü olduğunu biliyorum, ama benim için neyin çözüldüğünden bahsedeceğim.

Yapılandırmam Debug olarak ayarlandı. Bunu Release olarak değiştirmek benim için hile yaptı.


2
Serbest bırakmak için değiştirildi ve işe yaradı ... hata ayıklamaya geri döndü ve çalışmaya devam etti ... teşekkürler.
Paul Zahra

3

Derleme zamanı hatalarına rağmen projeyi çalıştırdığım için bu hatayı alıyordum. Bunu farketmedim.


Bleepity-bleep Hata Listesi MUTLU olduğunu söyledi çünkü fark etmedi !! Teşekkür ederim.
CindyH

3

Sitenin bin klasörünün içeriğini silin (bunun için dosya gezgini kullanın). Yeniden oluşturun.


3

Ben buna düştüm. Daha önce verilen tüm olası çözümleri okudum ve test ettim. Oluşturma yolunu kontrol etme, oluşturma, yeniden oluşturma, temizleme, IIS ve VS2015'i yeniden başlatma, tüm nuget paketlerini yeniden yükleme, tek tek derleme vb.

Aniden VS sistem klasörlerinde bazı ASP geçici dosyaları tutar hatırladı ... Ben sonuçta, bu daha da kötüye gidebilir denemek gerektiğini düşünüyorum. Bu yüzden boşalttım:

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

Ve hepsi tekrar çalışıyor ... Bu sorunun çok farklı olası çözümleri olması garip ...


3

Bunu son on yılda birçok kez gördüm ve tekrar aldım. Aynı hatayla sonuçlanan birçok sorun var.

Bunun bir nedeni dosyaların yeniden adlandırılmasıdır. .Cshtml dosyalarıyla çalışıyorsanız, bu dosyalardaki ve Views \ web.config dosyasındaki tüm ad alanlarını kontrol edin. Web formları için Default.aspx'i yeniden adlandırın (ilgili .cs ve tasarımcı dosyaları otomatik olarak yeniden adlandırılır). Kod arkası değişir, ancak işaretlemedeki Devral satırı değişmez. Manuel olarak değiştirin. Tasarımcı sayfasını iki kez kontrol edin. Bazen (VS2005-8?) Tasarımcı sayfası ad alanındaki bir değişikliği yansıtmaz. 2010 yılında bunu görmedim.

Başka bir sorun, tüm VS'de veya yerel PC'nizde çalışıyor, ancak dağıttığınızda değil. Bunun nedeni, dağıtım ortamının aynı şekilde yapılandırılmamış olması olabilir. Örneğin, kodunuzu bir uygulama klasörünün altındaki sanal bir dizine yerleştirirseniz hata oluşur, ancak yeni bir uygulama klasörü oluşturup tüm dosyalarınızı oraya yerleştirirseniz bu hata oluşmaz. Ben aynı izinleri (ya da ben öyle düşünüyorum) ile yeni çocuk / sanal klasör ayarladığım ve (ben inanıyorum) uygulama havuzu verilen bir uygulama klasöründe her şey için aynı çalışması gerektiğini, ben bunu anlamıyorum.

Benim durumumda, IIS sunucusundaki diğer derlemelerden güncelleştirilen derlemeler içeren bir bin klasörü de vardı. Yine, bunların ayrı bir uygulama klasöründe çalışmasını sağlamak başarı ile sonuçlanmıştır.

HTH


2

Dinamik olarak derlenmiş (ascx, aspx vb) bir dosyayı kaydetmek her zaman bu sorunu alıyorum. Yaklaşık 8-10 saniye beklerim, sonra gider. Cehennem can sıkıcı.

Ben muhtemelen bir IIS Express sorunu olduğunu düşündüm, bu yüzden dahili dev sunucusunda denedim ve hala bir dosyayı kaydettikten sonra alıyorum. Ben bir MVC uygulaması çalıştırıyorum, ben de T4MVC kullanıyorum, belki bu bir faktör ...


2

Visual Studio'da geliştirme ortamında bu sinir bozucu hatayı aldım ve sebebinin oldukça aptalca olduğu ortaya çıktı. Kısacası çözümde birden fazla web projeniz / siteniz varsa: web sitesine erişmeye çalıştığınız bağlantı noktasının Proje Özellikleri-> Web'de yapılandırılanla aynı olduğundan emin olun.

Benim durumumda, çözümdeki projeye başka bir bağlantı noktası atanırken web sitesine (tarayıcıda) erişmek için farklı bir bağlantı noktası kullandığımdan dolayı hata oluştu. Biraz daha açıklamak için, çözümüm Website1'de (ISS'de Visual-Studio tarafından 8001 numaralı bağlantı noktasına atanmış) ve Website2'de (Visual Studio tarafından ISS'de 8101 numaralı bağlantı noktasına atanmış) iki web sitesi projem vardı. Bu yüzden Website1 inşa ediyor olsam da, web sitesine locahost: 8101 kullanarak erişmeye çalışıyordum.

Nihayet sorunu fark ettiğime göre, @ StingyJack'in yorumunun da benzer sorunu ele aldığını görüyorum.



2

Yine bu hatayı aldım ve yukarıdakilerin hiçbiri benim için çalışmadı. Ben .Csproj dosyasında aşağıdaki düğümünü kaldırmak zorunda kaldı: <VisualStudio>....</VisualStudio>. Reloaded VS ve işe yaradı.

FYI, VS düğümü yeniden oluşturabildim ve sonra web sitesini IIS'de (VS aracılığıyla) yeniden oluşturdum ve mükemmel çalıştı.

Umarım bu birisine yardım eder.


1

Emin gibi MVC proje açmak zorunda olmamalıdır olun Dosya-> Aç Web Sitesi Kullanım Dosya-> Aç Projesi yerine.


1

Benim için işe yarayan Visual Studio'yu yeniden başlatmaktı.

Manuel olarak yeniden oluşturmayı, temizlemeyi ve yeniden oluşturmayı ve bin klasörünü silmeyi denedim, hepsi işe yaramadı. Çıkış yolum zaten bin \


Çözüm düzeyinde yeniden oluşturma yaptım ancak projemin bin klasörünün boş olduğunu fark ettim. Sadece proje üzerine bir yapı yaptım ve birdenbire nüfuslu bir çöp kutusu klasörüm vardı. Projeyi başlattım ve işe yaradı.
MrBoJangles

1

Bir ad alanını değiştirdiyseniz, sağ tıklayıp yeniden düzenleme işlemini yaptığınızdan emin olun.


1

Ad alanınızı değiştirirseniz bu çok sık olabilir. Ad alanınızın adını, tıpkı eskisi gibi döndürün, bu da işe yarayacaktır!


1

Bazı durumlarda, oluşturduğunuz yeni projeler varsayılan olarak derlenecek şekilde ayarlanmaz. Çözümünüzü sağ tıklatıp Propertiesseçin ve Configuration Properties| Configurationdüğümü tıklayın ve projenizin Buildsütun altında bir onay işareti olduğundan emin olun . Normal koşullarda bunun varsayılan olarak olduğunu fark ettim. Diğer durumlarda (bu davranışı gösteren biraz karmaşık bir Web Api / Xamarin Android ve iOS / Mvc 5 çözümüm var) onay işareti mevcut değil.

Bu diğer yanıtlarla ilgilidir - web projektörünüzün montajı kullanılamıyorsa, bu hatayı alırsınız. Ancak bu, özellikle çözümünüzü derlediğiniz için ortak bir senaryo olabilir - proje henüz inşa edilmiyor.


1

Bu hatayı aldım çünkü sürüm kontrolüm bin klasörünü yoksaymaya ayarlanmıştı . Çok aptalca, ama belki bir başkası bundan fayda sağlayacaktır.


1
Bin klasörünü, obj ve kaynak kodun bir parçası olmayan inşa edilmiş diğer şeylerle birlikte göz ardı etmek istemez misiniz?
MrBoJangles

Normalde evet. Ancak bu belirli sitede, öğeleri sunucuya aktarmanın tek yolu buydu. Muhtemelen cevabımı daha genel yapmalıydım.
Brent Waggoner

Tamamen böyle özel koşullar alıyorum.
MrBoJangles

1

Bu problemle karşılaştım ve her türlü cevabı görüyorum ama hiçbir şey kabul edilmedi. Biraz sonra sadece çalıştırmak için çalışmadan önce web sitesi inşa benim sorunum çözüldü keşfetti.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.