Веб-приложение ASP.NET: невозможно прочитать DLL - PullRequest
1 голос
/ 15 апреля 2011

У меня есть приложение ASP.NET, к которому добавлены две ссылки: MapServer и GDAL.Эти две библиотеки DLL используют несколько других библиотек DLL, и все они находятся в каталоге /bin моих приложений.

Когда я запускаю приложение на моем собственном ПК в Visual Studio 2010, оно работает нормально.Когда я загружаю его на свой сервер Windows 2008 с IIS, он выдает это исключение:

Could not load file or assembly 'gdal_csharp' or one of its dependencies.
An attempt was made to load a program with an incorrect format. 

При запуске приложения через Visual Studio на сервере все работает нормально.

Я даже пыталсядобавление каталога /bin в переменную среды PATH и перезапуск сервера.Не повезло, хотя.

Ответы [ 3 ]

4 голосов
/ 15 апреля 2011

Я предполагаю, что DLL - это 32-битная только DLL, которую вы пытаетесь запустить в среде x64.Можете ли вы попытаться установить для пула приложений только 32-разрядную версию?

Обновление: простая инструкция здесь: http://help.webcontrolcenter.com/KB/a1114/how-to-enable-a-32-bit-application-pool-in-iis7-dedicatedvps.aspx

0 голосов
/ 15 апреля 2011

Как уже упоминалось, вы можете что-то упустить из GAC.

Чтобы увидеть, что происходит, вы можете попробовать включить Fusion Logging , это позволит вам просмотреть все сбои загрузки сборки.

Назад к основам: использование Fusion Log Viewer для отладки ошибок загрузчика Obscure

0 голосов
/ 15 апреля 2011

Вам необходимо зарегистрировать dll в GAC: http://en.wikipedia.org/wiki/Global_Assembly_Cache

...