Sto avendo un problema molto spiacevole con la mia webapp.Il tipo C# non può essere convertito in tipo B (InvalidCastException) ... Context hell?
L'applicazione è stata progettata come segue:
- La radice App sta caricando un file SWF Flex, che a sua volta carica un 3rd party modulo Flex SWF in un'applicazione sub (MagickECB).
- Entrambe le applicazioni di riferimento Albums.dll, dll trovata in /bin e /MagickECB/bin e entrambe le applicazioni condividono lo stesso pool di applicazioni in IIS.
EDIT: Sono due progetti, il progetto dell'app root e il progetto subapp. Progetto dell'app root di riferimento del progetto Subapp.
Quando si carica il modulo flex il sub dell'applicazione dall'applicazione Flex dell'app radice, abbiamo casualmente otteniamo un errore di getto come segue:
C'è stato un errore ottenendo configurazione del Photobook: [A] Albums.LocalizationConfiguration non può essere trasmesso a [B] Album.LocalizzazioneConfigurazione. Tipo A proviene da 'album, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null ' nel contesto 'predefinito' nella posizione 'C: \ WINDOWS \ Microsoft.NET \ Framework \ v2 .0.50727 \ Temporary ASP.NET File \ magickecb \ 4414db97 \ 126f5aaf \ assembly \ dl3 \ cf281292 \ 4a6ecec8_8a7bcb01 \ Albums.DLL '. tipo B nasce dalla 'album, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null ' nel contesto 'LoadFrom' nella posizione 'C: \ WINDOWS \ Microsoft.NET \ Framework \ v2 .0.50727 \ Temporary ASP.NET File \ magickecb \ 4414db97 \ 126f5aaf \ assembly \ dl3 \ 017fab88 \ a91238d1_7977cb01 \ Albums.dll '. a Albums.LocalizationConfiguration.GetConfig() a Albums.CGlobal.GetUserLocale (String userHandle)
Cercando di approfondire la questione, ho scoperto il metodo GetConfig che causa l'errore getto restituito
return (LocalizationConfiguration)ConfigurationManager.GetSection("Localization/Localization");
la sezione nel web.config è dichiarata come segue: (EDIT: radice web.config dell'applicazione)
<sectionGroup name="Localization">
<section name="Localization" type="Albums.LocalizationConfigurationHandler, Albums"/>
</sectionGroup>
0.123.516,41 mila
La mia ipotesi è che il codice interno di GetSection tenta di caricare Albums.dll nel contesto "LoadFrom" e quindi causare un conflitto con l'originale Albums.dll caricato nel percorso/bin (see context problematics)
I Si noti inoltre che altre DLL in/MagickECB/Bin fanno riferimento anche a Albums.dll, quindi ricostruisco tutti i progetti in modo che ogni DLL faccia riferimento alla stessa versione di Album.dll
scorso, se si seleziona il percorso completo dll nei file temporanei, le estensioni sono differenti (maiuscole vs minuscolo) ..
Qualsiasi input su come risolvere questo problema sarebbe molto apprezzato !!
Nessun avviso durante la compilazione. Ho due progetti, il progetto dell'app root e il progetto subapp. Progetto dell'app root di riferimento per sottoapp. – Breakdown
Stavo pensando ad Albums.dll: come si fa a far riferimento a entrambi i progetti? È questo il tuo progetto? – Mihailo
Sì, entrambi sono i miei progetti. Faccio riferimento a Albums.dll (che è l'uscita del progetto root) nel sottoprogetto attraverso il riferimento del progetto. E 'quello che volevi sapere? (Nessun C/P nel cestino del sotto-app del progetto) – Breakdown