Domanda

Sto utilizzando un sito ASP.NET 2.0 precompilato (ovvero, copiato sul server utilizzando la funzione "Build- > Publish Web Site" di Visual Studio 2005). Ricevo e registro tutti gli errori che di solito sono abbastanza dettagliati, ma ultimamente ho ricevuto il seguente errore senza altre informazioni:

  

Impossibile caricare l'assembly   'App-Web-rp2eml-j'. Assicurati che   viene compilato prima di accedere alla pagina.

Ora, quel file 'App-Web-rp2eml-j' dovrebbe essere una dll nella mia cartella bin creata per il sito precompilato. La mia domanda principale è: come faccio a sapere quale pagina aspx sta cercando quella DLL? Ho provato a ripubblicare il sito e persino a cancellare completamente il sito e ripubblicare, ma il problema non va via.

Quando si cerca su Google il problema, la maggior parte delle risposte su questo messaggio di errore si concentrano sull'assicurarsi che IIS sia impostato per utilizzare ASP.NET 2.0 anziché 1.1. Questo non è un mio problema.

NOTA 1: il sito sembra funzionare tutto, ma ovviamente c'è (almeno) una pagina spezzata che non riesco a trovare.

NOTA 2: il nome del file sopra dovrebbe avere caratteri di sottolineatura anziché trattini, ma il markup di SO sta cambiando il testo tra i caratteri di sottolineatura in corsivo.

È stato utile?

Soluzione

La dll menzionata esiste nella directory bin? Hai in corsivo quella parte quindi sospetto che non lo faccia. Ciò potrebbe significare che l'errore si riferisce a una dll nella cartella dei file temporanei.

Questo problema può verificarsi se una o più delle DLL nella cartella dei file temporanei ASP.NET sono danneggiate. A volte ASP.NET non aggiorna i file qui se non ci sono cambiamenti nella dll che risiede nella directory virtuale. Succede di tanto in tanto sul mio server.

La mia soluzione è la seguente:

  1. Arresta i servizi IIS sul server per circa un minuto.

  2. Passa alla cartella dei file temporanei ASP.NET (in genere si trova in "% windir% \ Microsoft.NET \ Framework \\ File ASP.NET temporanei \ MyApplicationName ") e cancella tutti i file all'interno della cartella.

  3. Pubblica e carica il mio sito nella directory virtuale configurata.

  4. Riavvia IIS e altri servizi.

Questo semplice processo in 4 passaggi ha funzionato molto bene per me in passato e potrebbe valere la pena provarlo.

Per rispondere alla tua domanda di base, tuttavia, ci sono due modi per "decodificare". una dll:

  1. Caricalo in ILDASM e controlla le classi contenute.
  2. Utilizzare Reflector per salvare tutti i file di classe contenuti nella DLL in una cartella.

Tuttavia, dubito che questo risolverà il tuo problema perché ogni dll potrebbe contenere molti file di classe e non avresti la minima idea di quale pagina ASPX sta cercando quella dll " ;.

Altri suggerimenti

Forse puoi ottenere informazioni più dettagliate sull'errore con l'evento Global.asax Application_OnError, così puoi guardare lo stack Trace.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top