Компонент не найден при развертывании в IIS, но обнаружен при запуске сервера разработки ASP - PullRequest
1 голос
/ 02 октября 2010

У нас есть приложение VB.net, которое перемещается из одного ящика в другой.Отлично работает на старой коробке.Новый ящик настроен так же, как старый, но на более новом оборудовании.Когда я запускаю приложение на новом сервере, он жалуется на то, что используемый нами набор инструментов Adobe не найден.

Сообщение об ошибке.

Compiler Error Message: BC30002: Type 'FDFACXLib.FdfApp' is not defined.
on the line:
Dim FdfAcx As FDFACXLib.FdfApp

Файл FDFACX.DLL и другие связанные библиотеки находятся в каталоге c: \ inetpub \ wwwroot \ bin.Я проверил права доступа к файлам, и пользователь ASP имеет полный доступ к ним.Я также зарегистрировал их с помощью regsvr32.

Visual Studio установлена ​​на новой коробке, и если я запускаю проект с использованием встроенного сервера разработки, все работает отлично (установлены ссылки на FDFACX.dll).

Похоже, что IIS не может ссылаться на DLL.Я не знаю, что еще можно попробовать на этом этапе.Есть предложения?

Ответы [ 2 ]

1 голос
/ 02 октября 2010

64-битный процесс не может загружать 32-битные библиотеки. Возможно, приложение .NET работает в 64-битном режиме? Если приложение выполняется в новом окне x64, то, скорее всего, оно по умолчанию выполняется в 64-разрядном пуле приложений в IIS. Пул приложений - это рабочий процесс, который запускает одно или несколько приложений IIS. 64-разрядный пул приложений, будучи 64-разрядным процессом, не может загружать 32-разрядные библиотеки. Поэтому в IIS необходимо создать новый 32-разрядный пул приложений, а затем обновить приложение IIS, в котором выполняется приложение .NET, чтобы использовать новый 32-разрядный пул приложений вместо пула приложений по умолчанию.

Откройте IIS 7 Administrator. Перейдите на свой сайт. На правой боковой панели нажмите Основные настройки, где вы найдете имя пула приложений для этого веб-сайта (по умолчанию это DefaultAppPool). Затем перейдите в «Пулы приложений», выберите правильный пул приложений и нажмите «Дополнительные параметры» справа. Если для параметра «Включить 32-разрядные приложения» установлено значение «Ложь», то оно будет 64-разрядным. Включить 32-разрядные приложения должно быть установлено в значение true для пула приложений, который используется вашим приложением IIS.

0 голосов
/ 27 октября 2010

Только для смеха, добавьте каталог с dll к вашему пути?

...