Как отладить сборку Load - ConfigurationErrorsException

У меня есть приложение, которое работает локально, но при развертывании я вижу ошибку:

Exception information: 
    Exception type: ConfigurationErrorsException 
    Exception message: Could not load file or assembly 'FluentMigrator.Runner' or one of its dependencies. An attempt was made to load a program with an incorrect format.
    at System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective)
    at System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory()
    at System.Web.Configuration.AssemblyInfo.get_AssemblyInternal()
    at System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig)
    at System.Web.Compilation.BuildManager.CallPreStartInitMethods()
    at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException)

Я пытался просмотреть журнал привязок сборок через средство просмотра журналов привязок сборок, но даже после включения я не получаю больше информации, чем приведенная выше трассировка стека, журнал, кажется, остается пустым. Сборка, на которую он жалуется, присутствует, и на первый взгляд присутствуют все зависимые сборки. Что еще я могу сделать, чтобы отладить что не так на моем сервере?

1 ответ

Эта ошибка связана с несоответствием архитектуры, т. Е. Ваши двоичные файлы, вероятно, ожидают запуска в процессе x86, но IIS запускает их в процессе x64 (или наоборот). Это настраивается в настройках пула приложений.

Чтобы устранить проблему, вы можете попробовать следующее: 1) Включить ведение журнала Fusion ( Как включить ведение журнала ошибок привязки сборки (Fusion) в.NET

2) Использование отладчика Windows (WinDbg) с привязками загрузчика. Пожалуйста, посмотрите здесь, как его настроить. http://www.microsoft.com/msj/0999/hood/hood0999.aspx

Также, когда в WinDbg перехватывает управляемое исключение с помощью команды sxeclr. Когда вы нажимаете ConfigurationErrorsException, вы должны выполнить команду.loadby sos clr, а затем ! Pe - это должно отобразить более подробную информацию об исключении. В то же время снимки загрузчика должны показать, какая DLL имеет проблемы с загрузкой. Вам нужно будет запустить рабочий процесс IIS (w3wp.exe) под WinDBG. Вы должны использовать gflags для настройки этого. Обычно 2) помогло бы с сборками C++/CLI.

Другие вопросы по тегам