Пишу веб-сервайс на VS2010, .NET 4.
Веб-сервайс использует COM-объекты.
Через reference добавил соответствующую ссылку на COM объект
Код такой
using XXXFunctionsOCX;
...
int result = 0;
try
{
....
result = -1;
XXXFunctions X = new XXXFunctions();
result = -2;
X.Connection = ....
...
result = 0;
}
catch
{
}
return result;
Все действия в пределах одной машины.
Запускаю на проверку из под среды, тестовым клиентом соединяюсь на localhost:12345 для проверки, все работает
Build, deploy, создаю сайт под IIS (6.0, Windows 2003). Не работает. Возвращает result = -1, не может создать COM-объект.
Пробовал играться с Application pool — properties — identity — local system.
Также Web sites — property — directory security — enable anonymous access — пользователь с правами локального админа.
И Web sites — my web site — property — directory security — enable anonymous access — пользователь с правами локального админа.
Не помогает(.
Посоветуйте, что может быть и куда копать.
Заранее спасибо!
Вот что в result2:
Retrieving the COM class factory for component with CLSID {0AF427E7-03B9-4673-8F21-F33A683BCE28} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
_>Изменил обработчик на: _>catch(Exception e) _>{ _>result2 = e.Message; _>}
_>Вот что в result2: _>Retrieving the COM class factory for component with CLSID {0AF427E7-03B9-4673-8F21-F33A683BCE28} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
_>Class not registered
проверь реестр на удаленной машине — похоже используемый объект там не инсталирован.
_>{0AF427E7-03B9-4673-8F21-F33A683BCE28}
Вот этот ключ и ищи...