Статус: Активный участник
  Группы: Участники
 Зарегистрирован: 17.09.2014(UTC) Сообщений: 123  Сказал «Спасибо»: 5 раз Поблагодарили: 2 раз в 2 постах
  
	 
	
     | 
    
        
            
		      
                Добрый день! подскажите, при использовании следующего кода в x86 все отработало отлично, подпись создалась и проходит проверку. При использовании x64 метод SignCades падает с ошибкой "интерфейс не поддерживается". В документации сказано, что Store нужно использовать из CadesCom в x64, что я и делаю, но все равно. Вот пример кода Код:
var certificate = null;
IStore3 store = null;
store = Activator.CreateInstance(Type.GetTypeFromProgID("CAdESCOM.Store")) as IStore2;
store.Open(CAPICOM_STORE_LOCATION.CAPICOM_LOCAL_MACHINE_STORE, "My", CAPICOM_STORE_OPEN_MODE.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
foreach (ICertificate2 cert in store.Certificates)
    if (cert.SerialNumber == cerificateSerialNumber)
        certificate = cert;
store.Close();
if (certificate==null)
    throw new SignCreateException("Выбранный сертификат не найден в хранилище");
var data = Activator.CreateInstance(Type.GetTypeFromProgID("CAdESCOM.CadesSignedData")) as ICPSignedData3;
var signer = Activator.CreateInstance(Type.GetTypeFromProgID("CAdESCOM.CPSigner")) as ICPSigner5;
signer.Options = CAPICOM_CERTIFICATE_INCLUDE_OPTION.CAPICOM_CERTIFICATE_INCLUDE_CHAIN_EXCEPT_ROOT;
signer.Certificate = certificate;
signer.TSAAddress = tspUrl;
data.ContentEncoding = _contentEncoding;
data.Content = _documentContent;
signer.KeyPin = keyPin;
byte[] signedData = data.SignCades(signer, CADESCOM_CADES_TYPE.CADESCOM_CADES_X_LONG_TYPE_1, _detached);
 
 Подскажите, как исправить?  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Активный участник
  Группы: Участники
 Зарегистрирован: 17.09.2014(UTC) Сообщений: 123  Сказал «Спасибо»: 5 раз Поблагодарили: 2 раз в 2 постах
  
	 
	
     | 
    
        
            
		      
                Нет, попробовал собрать все под x86, все равно не работает, ошибка та же. Странно. На одной машине Win8 работает, никаких проблем, а на машине Windows Server 2008 r2 возникает вот эта проблема. Не факт, что это связано с ОС... 
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Статус: Сотрудник
  Группы: Участники
 Зарегистрирован: 18.02.2015(UTC) Сообщений: 16   Откуда: Москва Поблагодарили: 1 раз в 1 постах
  
	 
	
     | 
    
        
            
		      
                Есть несколько уточняющих вопросов. Какой интерфейс не поддерживается? Код компилируется?  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Активный участник
  Группы: Участники
 Зарегистрирован: 17.09.2014(UTC) Сообщений: 123  Сказал «Спасибо»: 5 раз Поблагодарили: 2 раз в 2 постах
  
	 
	
     | 
    
        
            
		      
                Код компилируется.  Какой интерфейс не поддерживается - не понятно, не уточнено, вот скриншот  http://take.ms/bxb7oТакое ощущение, что не поддерживается что-то из объекта CadesSignedData...  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Статус: Активный участник
  Группы: Участники
 Зарегистрирован: 17.09.2014(UTC) Сообщений: 123  Сказал «Спасибо»: 5 раз Поблагодарили: 2 раз в 2 постах
  
	 
	
     | 
    
        
            
		      
                Даже самый простой вариант, если вызывать вот так      signedData = data.SignCades(null, CADESCOM_CADES_TYPE.CADESCOM_CADES_X_LONG_TYPE_1, _detached,CAPICOM_ENCODING_TYPE.CAPICOM_ENCODE_BINARY); по хорошему должно вывалиться окно выбора сертификата, потом свалиться что нет адреса службы штампов. Так и происходит на машине вин8, на вин2008 валится та же ошибка с интерфейсом       
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Сотрудник
  Группы: Участники
 Зарегистрирован: 18.02.2015(UTC) Сообщений: 16   Откуда: Москва Поблагодарили: 1 раз в 1 постах
  
	 
	
     | 
    
        
            
		      
                А SDK одинаковые на обеих машинах? 
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Статус: Активный участник
  Группы: Участники
 Зарегистрирован: 17.09.2014(UTC) Сообщений: 123  Сказал «Спасибо»: 5 раз Поблагодарили: 2 раз в 2 постах
  
	 
	
     | 
    
        
            
		      
                да, они устанавливались в одно и то же время с оф. сайта. Проблема возникает именно на методах подписи, Verify работает отлично...  Код:
var version = Activator.CreateInstance(Type.GetTypeFromProgID("CAdESCOM.About")) as IAbout;
Console.WriteLine(version.Version);
 
 выдает на обеих машинах 1.5.1633 Отредактировано пользователем 2 марта 2015 г. 14:44:09(UTC)
 | Причина: Не указана  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Активный участник
  Группы: Участники
 Зарегистрирован: 17.09.2014(UTC) Сообщений: 123  Сказал «Спасибо»: 5 раз Поблагодарили: 2 раз в 2 постах
  
	 
	
     | 
    
        
            
		      
                Проблема правда где-то может с несовместимостью библиотек CAPICOM или несовместимостью с ОС (скажите, как проверить), потому что вот этот код выдает ту же ошибку - при всех параметрах по умолчанию и без задания Content. Код:
var data = Activator.CreateInstance(Type.GetTypeFromProgID("CAdESCOM.CadesSignedData")) as ICPSignedData3;
data.SignCades();
 
  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Статус: Активный участник
  Группы: Участники
 Зарегистрирован: 13.09.2014(UTC) Сообщений: 42   Сказал «Спасибо»: 7 раз Поблагодарили: 4 раз в 4 постах
  
	 
	
     | 
    
        
            
		      
                Код на Delphi так же валится с такой же ошибкой "Интерфейс не поддерживается" на последней строке, подскажите куда копать, весь день бьемся. Код:oSignedData:=CreateOleObject('CAdESCOM.CadesSignedData');
oSignedData.ContentEncoding:=CADESCOM_BASE64_TO_BINARY;
oSignedData.Content:=base64;
TSP:='http://tsp.gaz-is.ru/qualifiedtsp/tsp.srf';
signer:=CreateOleObject('CAdESCOM.CPSigner');
signer.Options:=CAPICOM_CERTIFICATE_INCLUDE_CHAIN_EXCEPT_ROOT;
signer.Certificate:=SelectedCertificate;
signer.TSAAddress:=TSP;
sSignedMessage:=oSignedData.SignCades(signer,CADESCOM_CADES_X_LONG_TYPE_1,true); 
  
            
	  
         
     | 
    
        
              1 пользователь поблагодарил Aleksandr_pro за этот пост.  
     | 
    
        
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Активный участник
  Группы: Участники
 Зарегистрирован: 17.09.2014(UTC) Сообщений: 123  Сказал «Спасибо»: 5 раз Поблагодарили: 2 раз в 2 постах
  
	 
	
     | 
    
        
            
		      
                Проблема похоже решена! Проблема была в неверно настроенных "службах компонентов" в разделе COM+ присутствовал элемент CAPICOM. После удаления все заработало. Всем спасибо! 
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
	                           
	
    
        Быстрый переход
         
	
    
    Вы не можете создавать новые темы в этом форуме.
	
	Вы не можете отвечать в этом форуме.
	
	Вы не можете удалять Ваши сообщения в этом форуме.
	
	Вы не можете редактировать Ваши сообщения в этом форуме.
	
	Вы не можете создавать опросы в этом форуме.
	
	Вы не можете голосовать в этом форуме.
	
	
    
    
        Important Information:
        The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
        
        
More Details
        Close