2013-02-25 24 views
15

Si è verificato un errore che non riesco a risolvere per un po 'di tempo. Mi stavo chiedendo se qualcuno può aiutare a identificare la causa di questo errore? Sono completamente nuovo per asp/asax. Dopo alcune ricerche, penso che l'errore che sto ottenendo sia dovuto all'applicazione web che tenta di usare codice obsoleto. Stavo pensando di ricostruire il file C# usando Visual Studio e/o l'intero progetto. Tuttavia, sono completamente nuovo in C# e asp, e mi chiedevo in grado di darmi alcuni suggerimenti se questo può risolvere il problema e/o se c'è una possibile soluzione alternativa.Messaggio di errore del parser: Impossibile caricare il tipo 'sometype'

Messaggio di errore

Parser Error Message: Could not load type 'Inventory1.Global'. 

Source Error: <%@ Application Codebehind="Global.asax.cs" Inherits="Inventory1.Global" %> 

Intere Global.asax contenuti:

<%@ Application Codebehind="Global.asax.cs" Inherits="Inventory1.Global" %> 
+0

Non aspettarti che risolviamo magicamente i tuoi problemi fornendo solo due righe di codice che non significano nulla per noi più di quanto non facciano a te! .. Per favore spiega il tuo problema in modo più dettagliato. Perché stai ereditando Inventory1.Global class per global.asax? Sai qualcosa di global.asax e di come è formato? c'è qualcos'altro in quel file? quali sono i contenuti dell'oggetto globale? –

+1

Come hai capito, sembra che manchi Inventory.Global che dovrebbe trovarsi in Inventory1.dll nella cartella/bin della tua webapp. (Ri) Costruire l'intera webapp sembra una buona idea – jbl

risposta

26

provare a sostituire CodeBehind con CodeFile

+2

Potresti spiegare perché questo ha risolto il problema di AnchovyLegend? Sto ricevendo lo stesso problema, ma vorrei sapere perché questo risolverebbe il problema prima di applicarlo. –

+0

Non ricordo esattamente cosa mi ha spinto a farlo, ma ha avuto qualcosa da fare sul Web e sul tipo di applicazione web dei progetti aspx. –

+0

Meravigliosa soluzione! – Keval

0

È probabile che è stato rinominato qualcosa. Controllare il file Global.asax.cs per la dichiarazione della classe e assicurarsi che lo spazio dei nomi e il nome della classe corrispondano allo esattamente cosa c'è nel file Asax. Questo include il caso! Puoi copiare/incollare lo spazio dei nomi e la dichiarazione di classe del file .cs in un post qui in modo che possiamo confrontare?

+0

Grazie per la risposta.Dichiarazione di classe: 'public Global() \t \t { \t \t \t InitializeComponent(); \t \t} 'e spazio dei nomi' <% @ Application Codebehind = "Global.asax.cs" Inherits = "Inventory1.Global"%> ' – AnchovyLegend

+0

esiste una dichiarazione' namespace' nel file .cs? – DiskJunky

+0

Sì 'Inventario1' – AnchovyLegend

5

Impossibile caricare il tipo

significa che un tipo non può essere caricato. (In questo caso, "tipo" si riferisce a Inventory1.Global). I tipi si trovano nelle DLL compilate. Quindi, la DLL non è disponibile, non è aggiornata o non contiene un tipo public con il nome specificato.

Alcune possibili cause sono:

  • Non avete tipo dichiarato con il nome dato. Per il vostro esempio, si dovrebbe avere la seguente:
namespace Inventory1 { 
    public class Global { 
    ... 
    } 
} 

Nota: evitare nomi come Inventory1. Implica che ci sia un Inventory2, Inventory3, ecc., Che è una cattiva pratica in quanto sono ambigui e non molto descrittivi. Inoltre, Global è piuttosto vago e potrebbe creare confusione con lo global namespace.

  • Assicurarsi che i vostri casi match (Inventory1, non INVENTORY1.)
  • Non hai compilato il progetto. In VS, ricostruire la soluzione.
  • L'assembly che dichiara la classe ha un errore di compilazione, quindi la DLL pertinente è mancante o non aggiornata. Assicurati di aver risolto tutti gli errori.
  • La classe non è contrassegnata come public.

Se dovessi indovinare, avrei messo i miei soldi in un errore di compilazione. A differenza di PHP e di altri linguaggi interpretati, C# deve essere compilato con successo prima di poter essere utilizzato.

+0

Grazie per la risposta. Quando provo a ricostruire la soluzione Inventory1 usando VB, ottengo molti errori e avvertenze, ecco una schermata: http://oi48.tinypic.com/288bea9.jpg – AnchovyLegend

+1

Ecco perché stai ricevendo l'errore di runtime. Dovrai risolvere quelli prima di poter eseguire la pagina. –

+0

Sì, lo so, tuttavia, dubito che ci siano molti errori poiché l'applicazione funzionava bene circa un mese fa. Penso che il problema sia più semplice, che risolvere un errore alla volta, qualche idea? – AnchovyLegend

0

parser messaggio di errore: Impossibile caricare il tipo _ _

Dopo aver fatto tutto quello suggerito nei commenti di cui sopra, senza fortuna, rinfrescante (upload) il contenuto di/bin sul server ha funzionato. I file caricati su bin sono: dll, pdb e xml. Non so quale ha fatto.

Il problema che avevo qui è stato indotto rinominando un file (_ .aspx) in Esplora soluzioni.

2

Ho affrontato questo problema e ho ottenuto la soluzione da here e mi piacerebbe condividerlo.

SOLUZIONE Svuotare la cartella bin. Costruisci tutte le librerie di classi dipendenti e indirizzale nel progetto principale e costruisci la soluzione completa.

Ho fatto questo e ha funzionato come un fascino per me !!

3

ho avuto questo errore, solo bisogno di ricostruire il progetto

1

Questo è accaduto con me sulla mia macchina locale. Il problema era la configurazione IISExpres errata. Se si verifica questo problema nell'ambiente locale (esecuzione di debug di Visual Studio), controllare il file di configurazione di IIS Express. Assicurati che il percorso del tuo sito/applicazione locale stia puntando alla posizione corretta.

Il file di configurazione si chiama applicationhost.config. È memorizzato qui: Documenti> IIS Express> config. Di solito (non sempre) uno di questi percorsi funzionerà:

  • % userprofile% \ documenti \ iisexpress \ config \ applicationhost.config
  • % userprofile% \ Documenti \ iisexpress \ config \ applicationhost.config
0

Ricostruire/ri-pubblicare il mio progetto/soluzione al server non ha fatto nulla per aiutarmi, e dubito che ciò possa aiutare molti fuori da questa situazione. Per quanto mi riguarda, ho fatto alcune cose per risolvere questo problema che alla fine mi ha fatto uscire da questo "buco".

Ho cercato di utilizzare un'associazione sul sito Web, ma non funzionava. Ho provato a chiamare il sito con http://localhost/Report.aspx (questa era la mia homepage, che ho scelto di non chiamare Default.aspx - Stavo per aggiornare la sezione "Documenti predefiniti" con il nome più tardi) quando ho ottenuto l'errore Parser l'OP visto. Così ho provato alcune cose:

Ho interrotto il sito Web del vecchio progetto e creato un altro progetto web semplice, che aveva "ciao" e un'etichetta sulla pagina e nient'altro. Avevo una riga nel Page_Load per popolare la proprietà Text della label con "world!", Giusto per assicurarmi che quella parte funzionasse. Ho creato un nuovo sito Web sulla porta 80 e trasferito i contenuti pubblicati del mio sito sul server. Quindi, anche se avevo installato .NET 4.5 sul server (e avevo eseguito il comando aspnet_regiis -i dalla directory 4.0) e il pool di app in IIS che stavo usando per questo nuovo progetto era impostato su 4.0, il browser si lamentava web.config che contiene targetFramework=4.5.2, che è il framework predefinito di Visual Studio 2015. Così ho installato .NET 4.6 (NDP46-KB3045557-x86-x64-AllOS-ENU.exe), riavviato il server, e quindi il mio sito semplice ha funzionato. Così ho eliminato questo sito: tutto quello che volevo fare era dimostrare che i miei passaggi di installazione erano accurati e che il server poteva eseguire un sito.

Quindi sono tornato al mio progetto/sito originale - ho cancellato e ricreato il sito web. Ho messo il pool di applicazioni a quello che avevo creato originariamente per questo, che ho assicurato era in esecuzione .NET 4.0. Una volta fatto questo, ho navigato nel mio sito e tutto ha funzionato quando si utilizza http://localhost/Report.aspx. Quindi mi sembra che le cause questa è la versione di .NET Framework che si sta utilizzando.

0

Ho provato tutte le soluzioni sopra elencate e nessuna ha funzionato. Alla fine ho creato una nuova pagina web (webform) e la copia ha bloccato tutto il codice (file cs e aspx) da quello vecchio, cancellato il vecchio file cs e aspx, ricompilato, e ora sono tornato in attività. So che non ha senso. Non avrebbe dovuto avere importanza, ma ha funzionato.

0

Si prega di provare ad aprire il progetto come Progetto/Soluzione, molto probabilmente risolverà l'errore. Questo tipo di errore Impossibile caricare il tipo .... si verifica quando si tenta di aprire il progetto come sito Web.

Ho cercato di aprire il mio progetto come soluzione e ha risolto il mio problema.

0

Controllare lo spazio dei nomi e il nome della classe in tutti i punti. In un caso, un membro del team ha cambiato lo spazio dei nomi e stavo utilizzando il vecchio spazio dei nomi nel file .aspx. Stava causando problemi. Ho aggiornato lo spazio dei nomi e ha funzionato.

0

Dopo aver setacciato in giro per quello che potrebbe aver causato questo ho trovato alcune cose che avevo bisogno di fare per ottenere il mio progetto in corso ...

(Nota: non aver bisogno di fare tutte queste - è è una cosa caso per caso)

  • Se avete fatto tutte le modifiche da IIS Express per IIS locale potrebbe essere necessario modificare la configurazione di generazione bin/debug-bin. (Fare clic destro sulla soluzione >> Proprietà >> >> costruire Output)

  • Se si dispone di un URL riscrivere allora sarà necessario installare URL rewrite on your Local IIS.

  • Passare al file applicationhosts.config (in genere è un posto come C:\Users\username\Documents\IISExpress\config) e rinominare il file in applicationhostsOLD.config.

  • Pulisci e ricostruisci il tuo progetto. Potrebbe essere necessario andare manualmente a svuotare il cestino.

Ora dovrebbe essere bello andare.

Problemi correlati