У меня возникла проблема, связанная с выполнением dll.Net из классического приложения asp на 64-битном сервере Windows Server 2008 с IIS7. Ситуация такова:
Я написал сборку .Net С# для выполнения некоторых задач шифрования. Эта сборка стала доступной для классической среды ASP через наследование с ServicedComponent, гарантируя, что файл assemblyinfo имеет атрибут ComVisible (true), и он был установлен с использованием командной строки "regsvcs".
При тестировании на моем собственном рабочем столе (XP с IIS6) все работало нормально. При переходе на IIS 7, Windows Server 2008 я получаю печально известный "ASP 0177 Server.CreateObject".
Я пробовал следующее безрезультатно:
- Обеспечение функций ASP и Script Extension были установлены на сервере, так как это не по умолчанию для IIS7. Это позволило мне выполнить простые ASP-команды, но не server.createobject для сборки .net.
- Включено Поддержка 32-разрядных приложений для пула приложений, поддерживающего классический сайт asp
- Используемый NetworkService как идентификатор для пула приложений, поддерживающего классический сайт asp
- Пробовал зарегистрировать dll с помощью regsvr32, который потерпел неудачу
- Я могу создать другие объекты, такие как "scripting.filesystemobject"
- Перемещение dll в каталог wow64, а затем с помощью regsvcs для их регистрации.
- И да, когда я выполняю команды regsvcs, они были из командной строки, запущенной с помощью администратора "RunAs". Команды regsvcs успешно зарегистрировались из 64 и 32-битных версий. Однако, когда он используется в классическом приложении asp, он терпит неудачу.
Этот вопрос тесно связан с этим. Однако, я думаю, этот вопрос был больше связан с использованием инструментов на сервере, а не с программной проблемой, подобной моей.
У кого-нибудь есть еще идеи попробовать?