Не удается создать экземпляр COM-объекта .Net на классической странице ASP / VBScript (ошибка ASP 0177). - PullRequest
2 голосов
/ 05 октября 2009

Я написал библиотеку классов с поддержкой COM-взаимодействия в C # с использованием .Net 3.5. Объект предназначен для предоставления некоторых служебных функций для классических ASP-страниц. Я написал страницу test.asp, которая создает экземпляр нужного объекта и вызывает его методы. Отлично работает на моей машине.

На другом компьютере (Windows Server 2003 - Standard Edition) он не работает, даже если сборка зарегистрирована в regasm правильно. Я проверил regedit и afaik, он выглядит хорошо.

Я получаю сообщение об ошибке «ASP 0177» (код ошибки), «8000ffff; Server.CreateObject-Fehler» (описание ошибки), которое переводится в Server.CreateObject-Error.

Btw. сборка подписана и не имеет других пользовательских сборок в качестве зависимостей (только системные компоненты).

Кто-нибудь испытывал нечто подобное?

Ответы [ 3 ]

6 голосов
/ 07 октября 2009

Предоставление пользователю IUSR (или тому, кто является вашим пользователем IIS) доступа на чтение к следующему ключу реестра выполнил за меня работу и устранил проблему.

HKEY_USERS\S-1-5-20\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones
2 голосов
/ 05 октября 2009

Я думаю, что это проблема безопасности. Похоже, что вы разработали и протестировали компонент на своем компьютере, который имеет много различий по сравнению с сервером (например, с установленной Visual Studio).


РЕДАКТИРОВАТЬ: Пожалуйста, посмотрите на это Microsoft "Исправления исправление":

1 голос
/ 26 декабря 2012
  • Найдите и щелкните следующий раздел реестра: HKEY_LOCAL_MACHINE \ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Internet Explorer \ MAIN \ FeatureControl \ FEATURE_IGNORE_ZONES_INITIALIZATION_FAILURE_KB945701
  • Примечание. Если подраздел FEATURE_IGNORE_ZONES_INITIALIZATION_FAILURE_KB945701 не существует, его необходимо создать вручную. Если вы используете 64-разрядную ОС, вам может потребоваться использовать HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Internet Explorer \ MAIN \ FeatureControl \ FEATURE_IGNORE_ZONES_INITIALIZATION_FAILURE_KB945701 вместо
  • Щелкните правой кнопкой мыши FEATURE_IGNORE_ZONES_INITIALIZATION_FAILURE_KB945701, укажите Новый, а затем нажмите Значение DWORD
  • Введите w3wp.exe в качестве имени новой записи реестра и нажмите клавишу ВВОД.
  • Щелкните правой кнопкой мыши w3wp.exe и выберите команду «Изменить».
  • В поле «Значение» введите 1 и нажмите кнопку ОК.

После установки этого раздела реестра, простой перезапуск пула приложений применит изменения. Ваши компоненты .NET COM больше не будут случайным образом переставать работать без реального решения, кроме перестановки пулов приложений!

...