Вызов объектов vb6 из веб-службы asp.net не выполняется, но работает из приложения форм - PullRequest
0 голосов
/ 20 января 2010

У нас есть веб-служба asp.net, работающая на Windows Small Business Server 2008 с пакетом обновления 2 ( 64-разрядная ). Он находится в собственном пуле приложений. Мы испробовали как встроенные, так и классические настройки для управляемого режима конвейера. Включить 32-разрядные приложения установлен на True. Он не может успешно вызвать метод dll vb6, но приложение Windows Forms на том же компьютере может.

Два экземпляра vb6 (A и B) создаются. Методу в A передается ссылка на B в качестве одного из его параметров. Затем этот метод вызывает внутри себя другие методы, которые также требуют ссылки на B.

Эти внутренние вызовы методов в A завершаются с ошибкой vb6 (метод A регистрирует эти ошибки в журнале событий приложений Windows):

70 (в доступе отказано)

Другая ошибка также регистрируется в журнале системных событий Windows:

Настройки разрешений по умолчанию для компьютера не предоставляют разрешения локальной активации для приложения COM-сервера с CLSID {xxx} пользователю NT AUTHORITY \ NETWORK SERVICE SID (S-1-5-20) с адреса LocalHost ( Используя LRPC). Это разрешение безопасности можно изменить с помощью инструмента администрирования служб компонентов.

Данный объект (третий компонент vb6, который является ActiveX EXE) уже настроен с использованием DCOMCNFG (Службы компонентов) с полными разрешениями на запуск, активацию и доступ, предоставленными NETWORK SERVICE и даже всем. Кроме того, из Explorer полный контроль / разрешения были предоставлены всем необходимым компонентам vb6 для NETWORK SERVICE (пробовал все тоже).

Приложение Windows Forms на том же компьютере может успешно вызвать метод в A. Та же веб-служба работает на другом компьютере с 32-разрядной ОС.

Как веб-служба, так и приложение Forms были созданы с установленным значением Platform Target "x86".

Как мы можем заставить вызов веб-службы работать на 64-битной машине?

1 Ответ

0 голосов
/ 20 января 2010

Работает ли веб-служба с использованием какого-либо олицетворения? Если нет, то, возможно, стоит попытаться установить удостоверение в файле web.config для использования выделенной учетной записи Windows, а затем убедиться, что для него установлены разрешения на запуск / выполнение dcom.

...