Статус: Активный участник
Группы: Участники
Зарегистрирован: 10.07.2014(UTC) Сообщений: 108  Откуда: Москва Сказал(а) «Спасибо»: 25 раз
|
Добрый день. В продолжение вот этой темы - я правильно понимаю, что пользоваться COM-интерфейсом CAdESCOM / CAPICOM под 64-bit на IIS (ASP.NET C#) невозможно? CAPICOM существует только 32-х битный, CAdESCOM завязан на его интерфейсы, поэтому когда я в настройках пула приложения ASP.NET выставляю запрет на 32 бита, то следующая ошибка вполне ожидаема: System.Runtime.InteropServices.COMException (0x80040154): Retrieving the COM class factory for component with CLSID {22A85CE1-F011-4231-B9E4-7E7A0438F71B} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)). --- стоит вернуть разрешение на 32-бита и все начинает работать. Подвижек никаких в этом вопросе нет и не будет? С уважением, Константин Ткачук.
|
|
|
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
В CAdESCOM x64 есть частичная реализации некоторых объектов CAPICOM. Для всех наших целей этого хватает. CAPICOM.Utilities в CAdESCOM не тащили, потому что его функциональность можно реализовать другими средствами. Что реализовано - описано в документации. |
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.01.2008(UTC) Сообщений: 675   Откуда: Йошкар-Ола Сказал «Спасибо»: 3 раз Поблагодарили: 95 раз в 68 постах
|
|
С уважением, Юрий Строжевский |
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 10.07.2014(UTC) Сообщений: 108  Откуда: Москва Сказал(а) «Спасибо»: 25 раз
|
Все "упирается" в функции "ByteArrayToBinaryString" и "BinaryStringToByteArray" из CAPICOM. Вот бы получить их исходный текст... Просто я не понимаю, куда девается байт "255" из следующего примера:
... var u = new CAPICOM.Utilities(); var str0 = u.ByteArrayToBinaryString(new byte[] {1, 2, 3, 4, 255 }); var str1 = u.ByteArrayToBinaryString(new byte[] { 1, 2, 3, 4 }); if (str0 == str1) Console.WriteLine("Содержимое строк совпадает"); var b0 = u.BinaryStringToByteArray(str0); var b1 = u.BinaryStringToByteArray(str1); if (b0.Length != b1.Length) Console.WriteLine("Содержимое массивов НЕ совпадает"); ...
--- он выводит "Содержимое строк совпадает" и "Содержимое массивов НЕ совпадает". При этом под отладчиком массивы "b0" и "b1" получаются правильными, а дампы памяти для "str0" и "str1" идентичные. Как они это сделали?
Свою проблему я, вроде как, решил через переход на CADESCOM_CONTENT_ENCODING_TYPE.CADESCOM_BASE64_TO_BINARY (тогда использование этих функций не требуется), но осадок, как говорится, остался.
Юрий, спасибо за совет, но Ваше решение мне совсем не нравится.
|
|
|
|
|
|
Статус: Вам и не снилось
Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC) Сообщений: 831 Откуда: Крипто-Про
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 48 раз в 44 постах
|
|
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close