C# de Type A ne peut pas être utilisé pour le Type B ( InvalidCastException)... Contexte de l'enfer?

Je vais avoir une très désagréable problème avec ma webapp.

L'app est conçu comme suit :

- La racine de l'Application est le chargement d'un SWF Flex, qui à son tour charge une 3ème partie SWF Flex module dans un sous-app (MagickECB).

- Les deux Applications de référence Albums.dll, dll trouvé dans /bin et /MagickECB/bin et les deux Applications partagent le même Pool d'Applications IIS.

MODIFIER : ce sont deux projets, la racine de l'application du projet et de la subapp projet. Subapp projet de référence de la racine de l'application du projet.

Lors du chargement de la sous application du module flex à partir de la racine de l'application de l'application flex, nous aléatoirement un plâtre d'erreur comme suit :

Il y avait une erreur lors de l'obtention
configuration de l'Album:
[A]Les Albums.LocalizationConfiguration
ne peut pas être lancé à
[B]Les Albums.LocalizationConfiguration.
Tapez Un provient de " les Albums,
Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null " dans le contexte
'Par défaut' à l'emplacement
'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary
ASP.NET
Files\magickecb\4414db97\126f5aaf\assembly\dl3\cf281292\4a6ecec8_8a7bcb01\Albums.DLL
'.
Type B provient de " les Albums,
Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null " dans le contexte
'LoadFrom' à l'emplacement
'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary
ASP.NET
Files\magickecb\4414db97\126f5aaf\assembly\dl3\017fab88\a91238d1_7977cb01\Albums.dll
'.
au
Les Albums.LocalizationConfiguration.GetConfig()
au Albums.CGlobal.GetUserLocale(String
userHandle)

Essayer d'étudier cette question, j'ai découvert la méthode GetConfig causant la fonte d'erreur renvoyé

return (LocalizationConfiguration)ConfigurationManager.GetSection("Localization/Localization");

La section dans le site Web.la config est déclarée comme suit : (MODIFIER : racine de l'application web.config)

<sectionGroup name="Localization"> 
    <section name="Localization" type="Albums.LocalizationConfigurationHandler, Albums"/>
</sectionGroup>

J'imagine que le code interne de GetSection essaie de charger Albums.dll dans le "LoadFrom" contexte et donc de provoquer un conflit avec l'original Albums.dll chargé dans le /bin chemin (voir le contexte des problématiques de)

Je note aussi que d'autres dll /MagickECB/Bin également de référence Albums.dll, donc je la reconstruction de tous les projets, de sorte que toutes les DLL de référence de la même version de Albums.dll

Dernier, si vous cochez la dll chemin d'accès complet dans les fichiers Temporaires, les extensions sont différents (majuscules vs minuscules)..

Toutes les suggestions sur la façon de résoudre ce problème serait grandement apprécié !!

OriginalL'auteur Breakdown | 2010-11-08