2009-02-04 12 views
5

Attualmente sto lavorando con un progetto di sito Web ASP.NET in Visual Studio 2008 e ogni volta apporto una modifica al codice dietro pagina per un utente il controllo e passare alla pagina che utilizza il contorl utente ottengo il seguente errore:Impossibile eseguire il cast dell'oggetto di tipo 'X' per digitare 'X' - ASP.NET

Unable to cast object of type 'ASP.basepage_master' to type 'ASP.basepage_master'.

devo ricostruire tutta la mia soluzione al fine di risolvere il problema. Qualcun altro ha riscontrato questo errore e sanno come risolverlo?

risposta

0

Se interrompo e riavvio IIS sulla mia stazione di lavoro locale, sono in grado di risolvere questo problema.

2

Questo ha senso, da quello che ho capito.

Stai apportando una modifica al code-behind. Affinché tali modifiche abbiano effetto, è necessario creare quel progetto in modo che il code-behind possa essere compilato nel file DLL per quel progetto. Quando si modifica il code-behind e non si crea il progetto, in pratica si hanno due versioni di tale pagina e ASP.Net non può risolvere le due versioni. Quindi, quando si compila la classe, le modifiche vengono riconciliate nella DLL.

+0

Sto usando il modello di progetto di sito web, non il modello progetto di applicazione Web in Visual Studio. –

+0

Continuo a credere che il concetto sia lo stesso, a parte la costruzione in un file dll. ASP.NET ha ancora bisogno di compilare i tuoi file sorgente, e sta usando la sua versione cache per eseguire il tuo sito, non la tua versione "funzionante" che non è compilata. http://www.odetocode.com/Articles/417.aspx – Carl

8

L'eliminazione dei file temporanei ASP.NET (tutto in C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files) rende questo andare via ... per un po '.

+0

Devo interrompere IIS per eliminare i file temporanei ASP.NET, che risolve questo errore. –

+2

Fantastico. Sono contento che ha funzionato. (* cough * Posso ottenere un voto in alto? * cough *) – teedyay

-1

Eurekaaa !! Capito ... Questo funziona ...

Quando grag rilascia l'usercontrol o lo carica tramite il metodo LoadControl, usa una "tilde" sul suo percorso. Per esempio. this.LoadControl("~/MyUserControl.ascx");

Lo stesso si applicava per un controllo lasciato cadere su una pagina. Aggiungi la tilde al percorso dichiarativo del controllo utente nella pagina aspx.

Possiamo chiamare questo come un bug in VS2005 ed è fissata in VS 2008.

Rispondi me, se questo lavoro dosen't o ha bisogno di ulteriori spiegazioni. In alternativa, non dimenticare di contrassegnarlo come risposta.

Problemi correlati