web-gelistirme-sc.com

Global.asax'ta "Ayrıştırıcı Hata İletisi: Tür yüklenemedi"

Bir MVC3 projesi üzerinde çalışıyorum ve aşağıdaki hatayı alıyorum:

Ayrıştırıcı Hata Mesajı: 'GodsCreationTaxidermy.MvcApplication' tipi yüklenemedi.

Kaynak Hatası: 

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

Aldığım hata GodsCreationTaxidermy.Core.MvcApplication yüklenemiyor ama bu ekranda Çekirdek kısmı hatayı görünmüyor vurdu:

Error Page Screenshot

Bu hataya dair bir fikri olan veya çözümü olan var mı?

178
PsychoCoder

Yerel web sunucunuz üzerinde çalıştığınızdan farklı bir kod kullanıyor. Hata ayıklamayı durdurduğunuzdan, yerel web sunucunuzu durdurduğunuzdan, Peter'ın önerdiği şekilde temizleyip yeniden oluşturduğunuzdan, global.asax ve global.asax.cs dosyalarınızı bir kez daha kontrol edip tekrar deneyin.

Bu işe yaramazsa ve yerel IIS kullanıyorsanız, siteyi IIS Yöneticisi'nden kaldırmayı ve el ile yeniden oluşturmayı deneyin.

156
Facio Ratio

Proje çıkış yolunun (project properties/Build) bin ve not bin\Release veya bin\Debug olarak ayarlandığını kontrol edin.

Nedense IIS (VS geliştirme Sunucusu veya Yerel IIS) kütüphanelere daima bin dizininden erişir (ve alt dizinleri aramaz)

183

Global.asax dosyanızı değiştirmeyi deneyin (basit bir yere boşluk ekleyin) ve yeniden çalıştırın. Bu, yerleşik web sunucusunu global.asax dosyasını yenilemeye ve yeniden derlemeye zorlar.

Ayrıca temiz ve yeniden yapın - sorunu çözmeli

32
Peter Munnings

Bu, bazen global.asax oluşturulduktan sonra ad alanı bilgilerini (proje veya sınıf düzeyi) değiştirirseniz gerçekleşir. 

Global.asax dosyasını sağ tıklayın ve "Birlikte Aç" ı seçin ve ardından "Kodlamalı XML (Metin) Düzenleyicisi" ni seçin (diğer düzenleyiciler de çalışabilir, ancak bu benim kullandığım şeydir). 

Ardından, XML yönergesindeki "Inherits" bölümünü düzenleyin. 

<% @ Application Codebehind = "Global.asax.cs" Inherits = "GodsCreationTaxidermy.MvcApplication" Dil = "C #"%>) 

uygulama sınıfınızın asıl tam adı ile eşleşmesi için. Ve bu kadar. 

Başka bir seçenek de, tüm kodunuzu Global.asax.cs dosyasından kopyalayıp, ardından başka bir Global.asax dosyasını silip oluşturmak (ve ardından kodu tekrar Global.asax.cs dosyasına kopyalamak).

25
Paul Easter

Görsel stüdyumu kapatıp yeniden açtım ve işe yaradı. 

17
Gagan

YAPI -> YAPILANDIRMA MÜDÜRÜ'ne gitmem gerekiyordu ve - ahem - gerçekten yapıldığından emin olmak için projemin yanındaki kutuyu işaretledim. 

15
Ron Newcomb

Bugün bu sorunu yaşadım ve nedenini bulmak biraz zaman aldı.

Temel olarak, ana VS2015 projem .Net Framework'ün daha yüksek bir sürümünü kullanarak inşa edilmiş bir alt projeyi içeriyordu.

Tuhaf bir şekilde, bu sorununuz olduğunda, VS2015, çözümün yolunda gittiğini memnuniyetle bildirir, ancak web sitesini çalıştırmaya çalıştığınızda, Global.asax.cs dosyanızın yanlış olduğunu bildiren yanıltıcı bir hata verir.

Bu nedenle, bu hatayı görürseniz ve Temizleme/Yeniden Oluşturma yardımcı olmazsa, Projenizin References ağacını açın ve ünlem işaretlerini kontrol edin.

 enter image description here

Ayrıca, şunun gibi mesajlar için Output pencerenizi kontrol edin:

The primary reference "C:\Projects\Business Objects 4\bin\Release\BusinessObjects.dll" 
could not be resolved because it was built against 
the ".NETFramework,Version=v4.5" framework. 
This is a higher version than the currently targeted framework
".NETFramework,Version=v4.0".

Çözüm, elbette ana projenizi sağ tıklayıp üst sekme olan "Uygulama" yı seçip Hedef Çerçeve sürümünü alt projenizle eşleşen daha yüksek bir sürüme değiştirmek.

Visual Studio 2015 uygulamasının, sessizce bu sorunu içeren Çözümler oluşturmanıza ve çalıştırmanıza izin vermesi can sıkıcıdır. Sorun istiyor ..!

4
Mike Gledhill

Eski bir 'klasör tabanlı' ASP.NET web projesi (üzerinde nefret ediyorum) üzerinde çalışıyordum - ve bunu düzeltmem için buldum:

Bir App_Code klasörü oluşturun (zaten bir tane yoksa)

Global.asax.vb dosyasını App_Code klasörüne taşıyın

Global.asax'taki işaretleme herhangi bir ad alanını bırakabilir (en azından, bu proje stili için afaik):

<%@ Application Codebehind="Global.asax.vb" Inherits="MyApp" Language="VB" %>

... burada "MyApp", Global.asax.vb dosyasında tanımlanan sınıfın adıdır.

2
bkwdesign

Bu yazıdan en az 4 öneri denediğimi bildirmeliyim. Hiçbiri işe yaramadı. Yine de, yedeklemeden geri alarak kurtardığımı bildirmekten memnuniyet duyuyorum. Son kod değişiklikleri sadece günlük dosyasından güncellemek zorunda kaldı. 10 dakikadan az zaman aldı. Bu yayını okumak ve diğer önerileri denemek için 3 kez geçirdim. Afedersiniz.

Çok garip bir hataydı. Bu gremlinle karşılaşan başkalarına iyi şanslar.

2
htm11h

Daha yeni bir MVC5 uygulaması ile karşılaştım ve hiçbir şey benim için işe yaramadı. Bu, projenin daha eski bir sürümüne geri dönmek için SVN yapmaya çalıştıktan hemen sonra oldu.

Delete global.asax.cs dosyasını kullandım ve ardından Proje -> Yeni Öğe Ekle -> Global.asax'ı sağ tıklatarak yeni bir tane ekledim ve sonunda bunu düzelttim.

Sadece birine yardım edebileceğini düşündüm.

1

Aynı projede çalışan 2 Visual Studio örneğine sahipken de aynı sorunu yaşıyorum. Böylece hem Visual Studio'yu kapattım hem de sadece bir örnek açtım ve şimdi iyi çalışıyor!

1

Ben de aynı problemle karşılaştım. Her cevabı izlememe rağmen işe yaramadı . sonra "Inherits = namespace.class " olarak "Inherits = tam olarak nitelenmiş birleştirme adı " yani "Inherits = namespace.class, assemblyname, Sürüm =, Kültür =, PublicKeyToken = " Umarım yardımcı olur.

1
Mahesh

Depo gözü klasörünü boşaltın. Tüm bağımlı sınıf kitaplıklarını oluşturun ve ana projede bunlara bakın ve tüm çözümü oluşturun. 

Kaynak

1

“YAPI -> YAPILANDIRMA MÜDÜRÜ ve - ahem - projenin yanındaki kutuyu işaretleyerek projenin gerçekten yapıldığından emin olun.” Bu ve Windows Gezgini'nde proje klasörüne gidip, seçeneklere basarak ve "Salt okunur" un işaretini kaldırarak onay kutusu yardımcı oldu.

1
DiSaSteR

Bu, aynı çözümden bir Web ve WebApi kullanıyorsanız, VS çözümünüzü "Birden Çok Başlangıç ​​Projeleri" olarak ayarlamayı unutmayı unutursanız da oluşabilir.

Bunu, Solution Explorer'da Solution'a sağ tıklayarak ve 'Özellikler'i seçerek kontrol edebilirsiniz. Sonra' Başlangıç ​​Projeleri'ni arayın.

1
Dave Black

Benim için sorun, projeme global.asax.cs dosyasını dahil etmememdir. Ve .net 4.5'ten 4.0'a dosya kopyaladığım için 4.0'da gerekli olmayan satırlara yorum yapmadım. Çünkü görsel stüdyosunda yer almadı, yine de sorunsuzca derledi. Ama dahil ettiğimde, sorunlara neden olan çizgileri vurguladı.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
//using System.Web.Http;
using System.Web.Mvc;
//using System.Web.Optimization;
using System.Web.Routing;

namespace YourNameSpace
{
    public class WebApiApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            //GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            //BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
    }
}
0
Satbir Kira

.vs dizinini çözüm kökünden silin. Temiz. Yeniden oluşturun.

Bu sorun beni bir süredir bonkerlere sürüklüyor ve kaçınılmaz olarak buraya cevapları bulmak için çağrı yapıyorum. Bu istisnayı üretebilecek birden fazla neden olduğundan şüpheleniyorum, bu bir zamanlar benim için çalışıyor.

0
Patrick

Bizim için, konfigürasyon yöneticisi dll kurulumlarını '64' ve 'herhangi bir cpu' yapısının bir karışımı olarak gösterir.

Hepsini aynı yapıya koymak onu düzeltir.

0
Carra

Kelimenin tam anlamıyla bunu çözmek için tam anlamıyla bir gün geçirdim.

Çalışan tek şey .sln dosyasını silmek, yeni bir tane oluşturmak ve projeleri birer birer eklemek oldu.

¯\_ (ツ) _/¯ - Programlama - ¯\_ (ツ) _/¯ 

0
Stachu

Sorunu bu şekilde çözdüm: Global.asax'ta namespace komutunu düzeltmeniz yeterli.

0
MarianNikolov

Sitenizin özelliklerini de IIS’de kontrol edebilirsiniz. (IIS'de siteyi sağ tıklatın ve Özellikler'i seçin.) Fiziksel Yol ayarının başka bir uygulama değil uygulamanız için doğru yolu gösterdiğinden emin olun. (Bu benim için bu hatayı düzeltti.)

0
Rob Cole

Ayrıca aynı hatayı aldım ... Sanal Dizininizin IIS Yapılandırmasını kontrol edin ve Özellikler - ASP.NET - ASP.NET Sürümünün Proje Özellikleri - Uygulama - Hedef Çerçeve ile aynı olduğundan emin olun. (Bu benim için bu hatayı düzeltti.)

0
montearg70

Projedeki Ad Alanını değiştirmenin, tüm çözüm boyunca bunu tekrar gözden geçirmeden benim sorunum olduğunu öğrendim. Projenizin Özelliklerini kontrol edin ve ad alanınızın ne olduğunu görün, tahta üzerinde sıralandığından emin olun.

0
Hadley

Uygulamam VS'nin daha eski bir sürümünde oluşturuldu ve bir bin klasörü yoktu. Daha yeni bir sürüme yükselttim ve konuşlandırmak için bir kabus gördüm. Sonunda bu hatayı Proje> Özellikler> Uygulama'ya kadar izledim. Hedef Çerçeve 2.0 olarak belirlendi; IIS Yönetici/Uygulama Havuzunda eşleşecek şekilde sunucuda değiştirmek sorunu çözdü. 

0
jeffe65

Burada kesinlikle her şeyi denedim ve hiçbir şey işe yaramadı. Projem VS 2013'teydi. O zamandan beri VS 2015'e geçtim ve 2015'te tüm yeni uygulamalarımı oluşturdum, ancak 2013'te bu sürümde oluşturulan eski uygulamalarımı yüklüyor, derliyor, inşa ediyordum.

Sadece 2015 yılında çözümü yüklemek sona erdi ve benim için çözüldü.

0
Blair Holmes

Bu sorun, klasörün doğru iznini vererek ve IIS'den kontrol ederek çözdüm.

Yerel ortamımda test ederken herkese izin verildi. Ancak yayın modunda ASP.Net Kullanıcısı'na yalnızca izin verdiğimizi düşünüyorum.

0
Ajay2707

Yeniden yapılanma projesi sorunu çözebilir.

0
suphero

Ben de aynı hatayı aldım ... yani doğru şekilde geliştirdiğiniz Uygulamanın adını kontrol edin. Ad alanı ve Montaj adı ayrılmış ve ayrıca uygulama için oluşturulan klasörün adını fiziksel olarak değiştirmeyi deneyin; bunların tümü global.asax dosyasında bulunan yukarıdaki ad alanındaki adla aynı olmalıdır.

0
Bhavik

Bu hata iletisiyle karşılaştım ve sonunda hata iletisinin yanıltıcı olduğunu öğrendim. Benim durumumda IIS içerisinde global.asax'ın web sunucusundaki başka bir siteden okunmasına neden olan ve böylece hatayı oluşturan bir yönlendirme sorunu olduğu görülüyor.

IIS’de sitem http: * 80: webservices.local’a bağlandı ve MyAPI adlı bir uygulama içeriyordu. Web sunucusunun ip adresini kullanarak MyAPI uygulamasını ararken korkunç mesajı aldım.

Uygulamamı başarılı bir şekilde aramak için, MyAPI uygulamasını çağıran tüm makinelere webservices.local için bir Host dosyası girişi eklemek zorunda kaldım. Daha sonra, doğru bir şekilde yönlendirmek için tüm isteklerimin http: //webservices.local/MyAPI/ ile öneklenmesi gerekiyordu.

0
Sheldon

Bu konuda birkaç gün geçirdim. Sonunda bu yazının önerileri aşağıdaki kombinasyonu ile çözüldü. 

  1. Platform hedefini Herhangi Bir CPU olarak değiştirin. Şu anda bu konfigürasyona sahip değildim, bu yüzden Configuration Manager'a gidip eklemek zorunda kaldım. Özellikle x64 için derliyordum. Bu tek başına hatayı çözmedi. 
  2. Çıktı yolunu bin\ yerine bin\x64\Debug olarak değiştirin. Platform hedefini değiştirmeden önce bunu birkaç kez denemiştim. Asla geçersiz bir biçimden dolayı Derleme yüklenemedi bir hata almak dışında bir fark yaratmadı. 

Açık olmak gerekirse, işe başlamadan önce ikisini de yapmak zorunda kaldım. Onları bireysel olarak birçok kez denemiştim ama ikisini de yapana kadar hiçbir zaman düzelmedi. 

Bu ayarlardan birini orijinale döndürürsem, Clean Solution'ı çalıştırmam ve bin dizinindeki her şeyi el ile silmeme rağmen yine aynı hatayı alıyorum. 

0
Drew Chapin

projectfirstly Fix your errors and after rebuild project its workingile hataları yükleyemiyorum

0
Codeone

Benim durumumda, web Meclisi GAC’in bir parçasıydı ... bu yüzden inşa ettikten sonra GAC’e kurulması gerekiyor ve çalışıyordu.

0
Vishnu