2

Вопрос по createobject, com-interop, .net, asp-classic – Не удается создать экземпляр COM-объекта .Net на классической странице ASP / VBScript (ошибка ASP 0177).

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

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

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

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

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

<span>Какие настройки у вас есть в вашей среде разработки?</span>

Oct 05, 2009, 9:46 AMотRodrigo

<span>@Matthias: работает ли для вас следующий пример:<a href="http://www.codeproject.com/KB/COM/nettocom.aspx">codeproject.com/KB/COM/nettocom.aspx?</a></span>

Oct 05, 2009, 9:48 AMотDirk Vollmar

<span>Что вы пытаетесь сделать здесь? Создание объекта класса dot net из вашей ASP-страницы ??? С server.createobject .. Ну, ваша сборка в первую очередь не com-объект. Во-вторых, если вы хотите создать объект, вам нужно только создать его, используя простой вызов его конструктора из кода VB 6, добавив ссылку на эту сборку.</span>

Oct 05, 2009, 9:30 AMотS M Kamran

3ответа

6

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

HKEY_USERS\S-1-5-20\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones
1

  • Найдите и щелкните следующий раздел реестра: HKEY_LOCAL_MACHINE \ SOFTWARE \ 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 больше не будут случайным образом переставать работать без реального решения, кроме перетасовки пулов приложений!

2

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


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

RelatedQuestions