C# - Typ A kann nicht gegossen werden zu Typ B ( InvalidCastException)... Kontext Hölle?

Ich habe ein sehr unangenehmes Problem mit meiner webapp.

Die app ist so konzipiert wie folgt :

- Die root-App ist das laden einer Flex SWF, das wiederum lädt ein 3rd-party-Flex-SWF-Modul in einer sub-app (MagickECB).

- Beide Apps Referenz Albums.dll, dll gefunden in /bin und /MagickECB/bin und beide Apps haben den gleichen Anwendungspool in IIS.

BEARBEITEN : Das sind zwei Projekte, die root-app-Projekt und die subapp-Projekt. Subapp Projekt-Referenz root-app-Projekt.

Beim laden der sub-app-flex-Modul aus dem root-app flex-Anwendung, die wir zufällig bekommen, ein cast-Fehler wie folgt :

Es wurde ein Fehler bekommen
die Konfiguration des Fotobuchs:
[A]Alben.LocalizationConfiguration
kann nicht umgewandelt werden
[B] - Alben.LocalizationConfiguration.
Typ A entsteht aus 'Alben
Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null " im Kontext
'Standard' an Position
'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary
ASP.NET
Dateien\magickecb\4414db97\126f5aaf\assembly\dl3\cf281292\4a6ecec8_8a7bcb01\Albums.DLL
'.
Typ B stammt aus " die Alben,
Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null " im Kontext
'LoadFrom' an Position
'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary
ASP.NET
Dateien\magickecb\4414db97\126f5aaf\assembly\dl3\017fab88\a91238d1_7977cb01\Albums.dll
'.
bei
Alben.LocalizationConfiguration.GetConfig()
bei Alben.CGlobal.GetUserLocale(String
userHandle)

Versuchen, dieses Problem zu untersuchen, fand ich heraus, das GetConfig-Methode verursacht die cast-Fehler zurückgegeben

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

Den Abschnitt in der Web.config deklariert ist wie folgt : (BEARBEITEN : root-app ' s web.config)

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

Meine Vermutung wäre, dass der interne code der GetSection-versucht zu laden Albums.dll in der "LoadFrom" Kontext und sind daher zu einem Konflikt mit den original Albums.dll geladen in den /bin-Pfad (siehe Kontext-Problematik)

Ich auch beachten Sie, dass andere dlls in /MagickECB/Bin auch Referenz-Albums.dll also ich Baue alle Projekte, so dass sich jede DLL-Verweis die gleiche version von Albums.dll

Letzte, wenn Sie die dll-vollständigen Pfad in Temporären Dateien, die Erweiterungen sind verschiedene (groß-vs. Kleinschreibung)..

Alle Eingaben auf, wie dieses problem zu lösen, wäre sehr dankbar !!

InformationsquelleAutor Breakdown | 2010-11-08
Schreibe einen Kommentar