У меня очень неприятная проблема с моим веб-приложением.
Приложение спроектировано следующим образом:
- корневое приложение загружает Flex SWF, который, в свою очередь, загружает Flex SWF стороннего производителя.модуль во вспомогательном приложении ( MagickECB ).
- Ссылка на оба приложения Albums.dll , dll найдена в / bin и / MagickECB /bin и оба приложения совместно используют один и тот же пул приложений в IIS.
EDIT : это два проекта, проект корневого приложения и проект subapp.Ссылка на проект подпроекта корневого приложения.
При загрузке гибкого модуля подприложения из гибкого приложения корневого приложения мы случайным образом получаем ошибку приведения следующим образом:
Произошла ошибка при полученииконфигурация фотокниги: [A] Albums.LocalizationConfiguration не может быть преобразована в [B] Albums.LocalizationConfiguration.Тип A происходит от 'Albums, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null' в контексте ' По умолчанию ' в местоположении ' C: \ WINDOWS \ Microsoft.NET \ Framework \v2.0.50727 \ Временные файлы ASP.NET \ magickecb \ 4414db97 \ 126f5aaf \ assembly \ dl3 \ cf281292 \ 4a6ecec8_8a7bcb01 \ Albums.DLL '.Тип B происходит от 'Albums, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null' в контексте ' LoadFrom ' в местоположении ' C: \ WINDOWS \ Microsoft.NET \ Framework \v2.0.50727 \ Временные файлы ASP.NET \ magickecb \ 4414db97 \ 126f5aaf \ assembly \ dl3 \ 017fab88 \ a91238d1_7977cb01 \ Albums.dll '.в Albums.LocalizationConfiguration.GetConfig () в Albums.CGlobal.GetUserLocale (String userHandle)
Пытаясь исследовать эту проблему, я обнаружил метод GetConfig, вызывающий ошибку приведения, возвращаемую
return (LocalizationConfiguration)ConfigurationManager.GetSection("Localization/Localization");
Раздел в файле Web.config объявлен следующим образом: ( EDIT : web.config корневого приложения)
<sectionGroup name="Localization">
<section name="Localization" type="Albums.LocalizationConfigurationHandler, Albums"/>
</sectionGroup>
Я полагаю, что внутренний код GetSection пытаетсязагрузить Albums.dll в контексте «LoadFrom» и, следовательно, вызвать конфликт с исходным файлом Albums.dll, загруженным в путь / bin ( см. проблематика контекста )
Также отмечу, что другиеdll в / MagickECB / Bin также ссылается на Albums.dll, поэтому я перестраиваю все проекты так, чтобы каждая DLL ссылалась на одну и ту же версию Albums.dll
Последнее, если вы проверяете полный путь dll во временных файлах, расширениябывают разные (заглавные и строчные) ..
Буду признателен за любую информацию о том, как решить эту проблему !!