Недавно я столкнулся с проблемой, которую, как мне казалось, легко реализовать.На моем компьютере с Windows 7 уже установлен COM-объект.Я пытаюсь построить веб-сервис или сервис WCF вокруг этого COM-объекта.К сожалению, что бы я ни пробовал, это кажется бесполезным.
У меня установлены Visual Studio 2008 и 2010.Используя VS IDE, я создал ссылку на COM и, как и ожидалось, VS автоматически создал библиотеку взаимодействия, необходимую для доступа к членам COM.
Когда я пытаюсь сделать это в приложении winforms, все работает нормально, нопри использовании в сервисе моя удача исчезла.
Код очень прост и выглядит так:
LCDirect_WebLogin.CoClass_n_ap_com com = (LCDirect_WebLogin.CoClass_n_ap_com)obj.Unwrap();
object value = null;
string name = "";
com.getsysteminfo(name, ref value);
if (value != null)
return value.ToString();
Итак, тот же код в приложении winform работает нормально, но под IIS вылетает.
Несколько дополнительных сведений: Наконец, мне нужно развернуть на Windows 2003 Server.COM DLL зависит от времени выполнения PowerBuilder.Я скопировал среды выполнения PB в мою system32, а также в папку bin для веб-службы.
Не думаю, что это проблема зависимости, а скорее проблема безопасности с вызовом неуправляемого кода.
Я такжепопытался запустить веб-сервис под более защищенной учетной записью, используя пул приложений и используя учетную запись администратора для запуска.Та же проблема.
Есть идеи?Благодаря.