Ayrıştırıcı Hata İletisi: 'TestMvcApplication.MvcApplication' türü yüklenemedi


152

Üretim sunucularımızdan birinde aşağıdaki hatayı alıyorum. DEV sunucusunda neden çalıştığından emin değil misiniz?

Ayrıştırıcı Hatası Açıklama: Bu isteğe hizmet vermek için gereken bir kaynağın ayrıştırılması sırasında bir hata oluştu. Lütfen aşağıdaki özel ayrıştırma hatası ayrıntılarını gözden geçirin ve kaynak dosyanızı uygun şekilde değiştirin.

Ayrıştırıcı Hata İletisi : 'TestMvcApplication.MvcApplication' türü yüklenemedi.

Kaynak Hatası :

Satır 1: <% @ Application Codebehind = "Global.asax.cs" Inherits = "TestMvcApplication.MvcApplication" Language = "C #"%>

Kaynak Dosya: /global.asax Satır: 1

Bu hatayı daha önce kimseyle karşılaşıp karşılaşmadığından ve nasıl çözüldüğünden emin değilim, ama sonuna geldim. Herhangi bir yardım mutluluk duyacağız.

Ben de bu yayınlanan kod olduğunu belirtmek gerekir, böylece tüm derlenir. Derleyici ayarlarımda bir sorun olabilir mi?



15
Visual Studio'dan çıkın ve yeniden başlatın, benim için düzeltti.
RickAndMSFT

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

Bu daha önce çalışan bir uygulamayı dağıtırken başıma geldi. IIS'deki (7) bir şey kötü duruma geldi; IIS'yi sıfırlamak sorunu çözdü.
BurnsBA

Yanıtlar:


169

Diğer cevapların hiçbiri benim için işe yaramadı. Web projesinin çıktı yolunu değiştirerek hatamı düzelttim. Ben bin \ debug olarak ayarlamıştı ama çıkış yolu sadece "bin" olarak ayarlanmadığı sürece web projesi çalışmaz


Bu benim sorunumdu, beni çok üzdü, çünkü buradaki diğer çözümlerin hiçbiri benim için işe yaramadı ..
Zack

3
+1 Bu da benim sorunumdu. Hata mesajı ve bu konuda yardım temelde yoktur. Teşekkürler.
Noldorin

4
Benim için, bin \ hata veriyor, ben sadece bin değiştirdi. ve işe yaradı.
Nanu

1
Benim için sorun, yanlışlıkla x86 etkin platform olarak seçmişti ve bu yapılandırma için proje ayarları yanlıştı (Bin \ Debug \ x86). Herhangi bir CPU'ya geri dönmek sorunu çözdü. Ancak çıkış yolunu değiştirmek de işe yaradı.
Lars Udengaard

13
Bu nedenle, Çıkış Yolunu bin \ Debug \ yerine bin olarak değiştirmek benim için hatayı kaldırır. Ama asıl soru şu: "Neden bin \ Debug ilk etapta çalışmıyor?" Bir Debug veya Release konfigürasyonu oluşturduğumda, dosyaların uygun bin dizininde oluşturulmasını istiyorum.
Ellesedil

96

Bunu birkaç kez yaşadım. Özellikle yarasa kapalı olduğu için sinir bozucu ve hata mesajı sorunun ne olabileceğine dair hiçbir ipucu tutmuyor.

Bunu düzeltmek için proje başlığınızı sağ tıklayın, bu durumda "TestMvcApplication" ve yapı tıklayın .

Bu, kodu çalıştırmadan önce derlemeye zorlar. Bana nedenini sorma, ama bu benim için zamanın% 100'ünün çözümü oldu.


4
Bana da +1. Ve bir çok şeyi denedim ve "şeyler" ile "vahşi tahminler" demek istedim. İyi cevap!
Bob Kaufman

Benim durumumda IIS daha önce oluşturulmamış bir MVC sitesine işaret vardı. Hamuru. Açıkçası, bunu düzeltmek.
Edgar

5
Projenin adını değiştirirken de bu hatayı aldım ancak global.asax.cs'in kullandığı ad alanını değiştirmeyi unuttum.
Pahalı

1
Siz bir beyefendiniz ve efendim, üzerinde bir yapmayı düşünmediniz bile. Teşekkürler!
Ben Black

2
Benim durumumda, projem herhangi bir nedenle Çözüm Yapılandırma Özellikleri'nde oluşturulacak şekilde ayarlanmadı: i.imgur.com/kp73sGQ.png
Matthew Lock

24

Yapılandırma Yöneticisi x86 altında veya standart proje "kutudan" ayarları dışında bir şey çalıştırmak için kullanmak zorunda olduğunuzda, IDE web projesi için bin klasörü altında bir sürü alt dizin oluşturduğunu buldum.

Bu gerçekleşmeye başladığında, Cassini sunucusu çalışıyorsa, proje düzgün şekilde çalışmaz.

Web Projesi özelliklerine -> Oluşturma ayarları ve Çıktı Yolunu bin olarak değiştirerek düzelttim \

Sonra yeniden inşa ve tüm gerektiği gibi çalışır.


Bingo, bu benim için de işe yarayan çözüm. Teşekkür ederim!
moshjeier

Benim için de çalıştı - bu bir hata değil mi?
Matt Wilko

CheckBox'ın yapı olup olmadığını kontrol edin
Daniel Bişar

Eğer Ohio hmu'daysanız, çünkü size 10 bira satın alıyorum, 3 saatten fazla bir süredir farklı önerilere bakıyordum
Andrew Afternoon-Delight Hayde

9

Uzunca bir bakıştan sonra burada asıl meseleye rastladım.

Derlemeler, dosyaları barındırılan bir ortama yüklemek için kullandığım FTP istemcisi tarafından bozuldu.

FTP istemcimi değiştirdim ve her şey amaçlandığı gibi çalışıyor.


9

Aynı sorunu yaşadım: benimki web projesinin x86 platform hedefi olmasıydı. 64 bitlik bir makinede çalışıyordum; çözümdeki diğer projeler 64 bit olarak ayarlandı.

Ayarlarınızı kontrol etmek için projeyi sağ tıklayın ve Özellikler'i seçin. Oluştur sekmesinde "Platform Hedefi" nin değerini kontrol edin.

Ayrıca, tüm projelerinizin aynı platforma inşa edildiğini kontrol etmek için çözümünüzün yapı yapılandırmasını (Yapı menüsü> Yapılandırma Yöneticisi) kontrol edin.

Her iki durumda da, ayarları hem hata ayıklama hem de serbest bırakma modu için kontrol ettiğinizden emin olun - aksi takdirde, makinenizde çalıştırırsınız ancak dağıtırken değil!


Umbraco
7.1.6'daki

9

Yukarıdaki tüm çözümleri denedim ama şans yok. <add assembly="*" />Web.config dosyasına satır eklemek benim için düzeltildi. (Ayrıca, uygun .NET framework sürümünün machine.config veya root web.config dosyasına ekleyebilirsiniz, bunu denemedim) Çözüm için MS Desteği sayesinde.


Bu benim sorunumdu. <assemblies><clear/>...Yuvalanmış bir IIS uygulamasında üst uygulamadan derleme başvurularının devralınmasını önlemek zorunda kaldım .
Craig Celeste

Buna hiç ihtiyacım olmadı .. mavi dışında, geliştirici makinelerimden birinde bu problemle karşılaştım. Neden başladığını bilmiyorum, ama bunu çözen tek şey bu
Pascal

9

Aynı hataya benzeyen şey vardı. Ben sadece sorunu bulmak için birçok sayfadan birçok öneri denedim web sitesi .Net yanlış sürümü ayarlanmış olmasıydı

Kaç yeniden derleme yapılırsa veya 'yapılandırma sorunu' diyen kişiler olursa olsun, hiç kimse .net sürümünün kontrol edilmesi gerektiğini belirtmedi.


8

Projemi / çözümümü yeniden adlandırdığımda benimle oluyor. Windows Gezgini'nde proje klasörüne gidin (VS'den çıkın). Global dosyasını bulun ve açın (belki 2 dosya bulacaksınız, ".asax.cs" uzantısına sahip olmayan açın) ve hata satırını doğru yolla düzenleyin. İyi şanslar!


Bu harika bir cevap, daha fazla oy verilmeli - uygulama yeniden adlandırma gerçekleşiyor ve bu tür hatalar can sıkıcı!
Bartosz

7

Aynı problemi birkaç gün önce yaşadım - 32 bit web uygulaması çalıştıran 64 bit IIS ile ilgili bir sorun olduğunu söyleyebildiğim kadarıyla. Üretim sunucumuzu 32 bit olarak değiştirdik ve bu sorun ortadan kalktı.


5

Web projesi özelliklerindeki varsayılan ad alanınızın Global.asax.cs'deki ad alanıyla aynı olduğundan emin olun. Bir alt ad alanı yapmak için varsayılan ad alanını değiştirmiştim, geri değiştirerek bu sorunu benim için düzelttim.


4

Tamamlama uğruna sorunumun ne olduğunu ve nasıl çözdüğümü ekledim:

Benim gibi ve web.config üzerinden httphandlers varsa ve global.asax.cs (belki de Session_Start () içinde) yönlendirmeler varsa benim başlangıç ​​projemde hangi noktaları tanımlanmış bir referans yoksa bu hatayı alırsınız httphandler'ınızın işaret ettiği hedef !! (ancak derleme hataları almayacaksınız, sadece çalışma zamanı hataları)

Yani:

  1. Harici öğeler için web.config dosyanızı iki kez kontrol edin
  2. Başlangıç ​​projenizin ihtiyaç duyduğu tüm referansları tekrar kontrol edin.

Şerefe.


Bir Ajax Toolkit denetimi ekledim, ancak DLL başvurusunu eklememiştim. # 2 için teşekkürler.
pixelmeow

4

Bunu yaşadığım tek zaman MVC çerçevesinin sunucuda yüklü olmadığı zamandı. Durum böyle olabilir mi?

Views \ Web.config dosyasındaki eksik Sayfalar bölümü de hatalı olabilir.


Emin değil, barındırılan bir sunucu ve onlara göre ASP .NET MVC iyi çalışıyor.
Riaan Engelbrecht

Farklı bir nedenden dolayı benzer bir hatayla karşılaşan başka bir kişi (Google Amca ile) buldum. Yanıtlamak için bağlantı eklendi. İyi şanslar!
Daniel Elliott

3

Aynı hatayla karşılaştım ve çözümlerinizden hiçbiri yardımcı olmadı. Sanırım sorunum proje için seçtiğim isim. Ben ayrıştırma hatası var yükleyemediğini söyledi benim proje 'arayüzü' olarak adlandırmıştı:

Satır 1: <% @ Application Codebehind = "Global.asax.cs" Inherits = " @interface .MvcApplication" Language = "C #"%>

Herhangi bir nedenle '@' işaretinin olduğu yer. 'Arayüz' kelimesinin başka bir şey için ayrıldığını ve @ sembolünü eklediğini tahmin ediyorum ama bu açıkça bir şey kırdı. Projeyi sildim ve farklı bir isimle problemsiz yeni bir tane yaptım.


3

İşte burada bir başkası:

  1. 12345: localhost kullanan bir web api projesi üzerinde çalışıyordum.
  2. Aynı projeyi içeren kaynak kontrolünden farklı bir şubeye baktım.
  3. Projeyi dalda çalıştırdım ve hatayı aldım.
  4. "Özellikler> Web> Proje URL'si" ne gittim ve "Sanal Dizin Oluştur" u tıkladım
  5. Bana URL'nin farklı bir dizine (orijinal proje dizini) eşlendiğini belirten bir iletişim kutusu belirdi.
  6. Tamam'ı tıkladım ve sanal dizin yeniden eşlendi.
  7. Hata gitti.

Umarım bir yere yardım eder :)


aslında benim için yaptı!
ra170

2

Çözmem gereken çok fazla sorun ve hata vardı, yukarıdaki cevaplardan bazıları yardımcı oldu, ancak benim için işe yarayan son hile neydi: Projenize gidin, özellikleri tıklayın.

Paketle / Yayınla Web sekmesine gidin ve yapılandırmanın Sürüm ve Platform için Tüm Platformlara ayarlandığından emin olun.

Son olarak, "Dağıtılacak öğeler (tüm dağıtım yöntemleri için geçerlidir)" öğesinin "Bu proje klasöründeki tüm dosyalar" olarak ayarlandığından emin olun

Sonra benim için iyi çalıştı.


2

Bu sorun karmaşıktır, çünkü temel nedeni ne olursa olsun karıştırmak kolaydır.

Benim durumumda, asıl neden çözümün NuGet Paket Geri Yükleme'yi kullanacak şekilde yapılandırılmış olmasıydı, ancak sunucu internete bağlı değildi, bu nedenle NuGet ilk kez inşa ederken bağımlılıkları indiremedi.

Temel nedenin basitçe çözümün bağımlılıkları doğru bir şekilde çözemediğine inanıyorum. Yanlış bir yol yapılandırması veya bir derlemenin yanlış sürümü veya çakışan derlemeler veya kısmi dağıtım olabilir. Ancak her durumda, hata, global.asax'ta belirtilen türü bulamadığını çünkü onu oluşturamadığını söylüyor.


2

Global.asaxDosyadaki Ad Alanı'nın dosya adıyla aynı olduğundan emin olun .Global.cs dosyada yani

global.asax: Some.Website.Webapplication

Global.cs: Some.Website(eksi 'WebApplication')


2

Yukarıdaki cevapların çoğunu denedim ve işe yaramadı. Nedense sadece VS'yi kapatmak ve yeniden açmak sorunu benim için düzeltti.


2

IIS'de dosyaları içeren fiziksel klasörü bir uygulamaya dönüştürdüğümde sorunum çözüldü. Sağ tıklayın> uygulamaya dönüştürün.


1

Benim için, dosyayı geçici olarak projeden hariç tutmuş olmamdı. Sadece projeye geri ekledim ve işe yaradı.


Benim de, çözüm dosya birkaç dosya kaldırıldı ve ben Visual Studio
Fiona - myaccessible.website

1

Benim durumumda System.Web.MVC referansı projemde eksikti. Ama referanslar ekleme sorunu aynı sonra benim Bin klasörün özellikleri kontrol böylece ReadOnly oldu. Yazılabilir yaptıktan hemen sonra, her şey iyi çalışıyor.


1

Uygulamayı sanal bir dizin olarak dağıttım ve ayrıştırıcı hatası "türü yüklenemedi" alıyordum çünkü uygulamayı bir web sitesi olarak dağıttım ve tekrar bu hatayı alamıyordum.


0

Diğer cevapların hiçbiri bu hatayı benim için çözmedi.
Aynı durumda olanlar için önerdiğim bir çözüm buldum:

  1. Visual Studio'yu kapatın
  2. Projelere göz atın \ projeniz \ projeniz
  3. Web.Debug.config ve Web.Release.config dosyalarını yeniden adlandırın
  4. Uygulamanızı yeniden oluşturun ve çalıştırın

Bunlar silindi ... ve şimdi tekrar ortaya çıkmıyorlar.
FiringSquadWitness

0

Benim için neden olan şeyin dibine hiç ulaşmadım. Sanırım bir yerde bazı dosyaları eksik olmalı. Yeni bir sunucuya yayınladıktan sonra hatayla karşılaştım. Sonunda siteyi çalışma sitesinden kopyaladım. Daha sonra site çalıştı ve yeni sunucuya daha fazla yayın yaptı.


0

Bu adımları takip et:

  1. İnşa etmek
  2. Yapılandırma yöneticisi
  3. AnyCPU projesini yerleştirin
  4. Üretime geri dön
  5. Hazır, bundan sonra x86 veya x64'e geçirmek için aynı adımları izleyin

0

Benim için 32-bit bir ortamda çalıştırılması gereken bir DLL projem dahil vardı.

Sunucu, web sitesini 32 bit modunda çalıştıracak şekilde yapılandırıldı, ancak localhostklasör 32 bit modunda çalışması belirtilmediğinden uygulamayı 64 bit makinemde çalıştıramadım.


0

Ben de benzer bir sorun yaşadım.

Nedeni bir file.aspx.c değiştiriyordu ve temiz bir yeniden yapmak zorundaydı. Bundan sonra her şey çalıştı.


0

Benim sorunum zaten bir web.config dosyası olan bir klasörün bir alt klasöründe bir ASPX web uygulaması oluşturmaya çalışıyordu ve

Bu yüzden Visual Studio'da üst klasörü bir Web Sitesi olarak açtım (Aç> Web Sitesi) Ayrıştırma / yükleme sorunu olmayan yeni bir öğe ASPX sayfası ekleyebildim.


0

Benim için sorun sadece web sitesindeki belirli (uzun) bağlantılardaydı ve URL uzunluğu sınırı 260 olan varsayılan yapılandırmaya sahip URLScan'a kadar izlendi.


0

Aynı sorunu yaşadım. Şunları deneyin:

Projeye sağ tıklayın ve Temizle'yi seçin, ardından tekrar sağ tıklayın ve Yeniden Oluştur'u seçin ve çalışıp çalışmadığını görmek için projeyi çalıştırın.

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.