создание .net dll для классического asp - PullRequest
0 голосов
/ 29 июня 2018

Я создал библиотеку классов в C # и скомпилирован как dll. Я добавил сайт к решению и не имею проблем с вызовом методов в dll из asp.net. Однако, когда я пытаюсь использовать его в классическом asp с использованием Server.CreateObject, я получаю ошибку «Server.CreateObject Failed».

Я прочитал все, что могу найти. Я сделал следующее:

  1. Пошел в Свойства-> Построить и проверил "Зарегистрироваться для COM Interop"
  2. В Assembly.cs прекрасно я добавил [Assembly: ComVisible (true)]
  3. В классе я добавил

    [ComVisible (истина)] [ClassInterface (ClassInterfaceType.None)] [Guid ( "2CDBF7B7-BD43-4B64-BB81-8591CB259065")]

  4. Я сгенерировал и добавил GUID

  5. Я сгенерировал и ссылаюсь на snk в Assembly.cs

Я собираюсь продолжить исследования, но, учитывая мои временные ограничения, я надеюсь, что у кого-то есть решение этой проблемы.

Я прочитал, что вы регистрируете dll .net для классического использования RegAsm, но на сервере нет RegAsm, и его невозможно установить. Я должен зарегистрироваться, используя RegSvr32, но когда я пытаюсь это сделать, я получаю сообщение об ошибке «Точка входа DllRegisterServer не найдена».

Если у вас есть решение, которое работает, пожалуйста, поделитесь. Я гуглил несколько дней и перепробовал все, что нашел, но ничего не работает.

1 Ответ

0 голосов
/ 03 июля 2018

Вам нужно будет добавить DllRegisterServer в ваш код, вот пример https://limbioliong.wordpress.com/2011/08/11/programmatically-register-com-dlls-in-c/

Перестройте, затем вызовите regsvr32 для получившейся библиотеки .NET DLL

Наконец, вызовите .DLL из вашего проекта ASP.

...