Messaggi di errore quando si tenta di eseguire un'applicazione Web di ASP.NET 2.0 basata su.NET Framework 2.0

Dichiarazione di non responsabilità per contenuto KB ritirato

Il contenuto di questo articolo è riferito a prodotti per cui Microsoft non offre più il supporto. Questo articolo viene pertanto offerto "così com'è" e non sarà più aggiornato.

Sintomi

Quando si tenta di eseguire un'applicazione Web di Microsoft ASP.NET 2.0 basata sul Microsoft.NET Framework 2.0, è che venga visualizzato un messaggio di errore analogo a uno dei seguenti messaggi di errore:
La classe di base include il campo'MyControl1", ma il relativo tipo (MyControl) non è compatibile con il tipo di controllo (ASP. MyControl_ascx).
Impossibile eseguire il cast dell'oggetto di tipo ' ASP. _Ascx MyControl'al tipo 'MyNameSpace. MyControl '.
Non sono consentiti riferimenti circolari ai file.
Nota: In questi messaggi di errore, MyControl è il nome del controllo che ha causato l'errore. MyNameSpace è il nome dello spazio dei nomi che questo controllo è membro di

Causa

Questo problema si verifica a causa del modo in cui i riferimenti dell'applicazione e la struttura delle cartelle dell'applicazione ASP.NET 2.0 utilizza per compilare l'applicazione. Se la proprietà batch dell'elemento < compilation > nel file Web. config per l'applicazione è impostata su true, ASP.NET 2.0 compila ogni cartella dell'applicazione in un assembly separato. In questo scenario, potrebbe verificarsi un riferimento circolare. Inoltre, il processo di compilazione potrebbe non riuscire se una delle seguenti condizioni è vera:
  • L'applicazione contiene riferimenti ai controlli Web.
  • L'applicazione contiene riferimenti a pagine Web che si trovano all'esterno della directory corrente.

Risoluzione

Per risolvere questo problema, utilizzare uno dei seguenti metodi:

Metodo 1: Modificare il file Web. config

Per modificare il file Web. config , impostare la proprietà di batch dell'elemento < compilation > nel file Web. config per l'applicazione su false.

Nota: Questo metodo è consigliato solo per applicazioni di piccole dimensioni. Nelle applicazioni di produzione di grandi dimensioni, quando il batch è impostata su false, ASP.NET 2.0 compila ogni pagina dell'applicazione in un assembly separato. Gli assembly con pagina singola vengono quindi caricati in corrispondenza della posizione di memoria disponibile successiva. Inoltre, gli assembly con pagina singola possono essere spostati. In questo modo, la frammentazione della memoria.

Metodo 2: Riordinare le cartelle dell'applicazione

Per evitare un riferimento circolare, riordinare le cartelle dell'applicazione. Per riordinare le cartelle, attenersi alla seguente procedura:
  1. Tracciare i riferimenti al file e dal file che è indicato dal messaggio di errore
  2. Identificare il riferimento circolare.
  3. Per evitare il riferimento circolare, mettere insieme i file di cui si fa riferimento nella stessa cartella.

Ulteriori informazioni

Per ulteriori informazioni su come utilizzare l'elemento < compilation > nel file Web. config , visitare il seguente sito Web Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/s10awwz0.aspx

Per ulteriori informazioni su un altro errore che può causare un'eccezione InvalidCastException viene generata in un'applicazione Web ASP.NET connesso, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
915782 FIX: potrebbe essere visualizzato un errore InvalidCastException in un'applicazione Web ASP.NET connesso

Proprietà

ID articolo: 919284 - Ultima revisione: 31 gen 2017 - Revisione: 1

Feedback