Форум КриптоПро
»
КриптоПро УЦ
»
КриптоПро УЦ 1.5
»
Connection time out при вызове oCertMan.SubmitRequest
Статус: Активный участник
Группы: Участники
Зарегистрирован: 16.01.2013(UTC) Сообщений: 33  Сказал(а) «Спасибо»: 15 раз
|
Приветствую! Есть проблема. Прикручиваем к своему сайту систему получения ЭП. В iframe'е выводим интерфейс получения сертификата по полученному ранее маркеру временного доступа. На этапе после генерирования закрытого ключа на стороне клиента (файл RegCreateCertRequest.asp) клиент перенаправляется на создание запроса на сертификат (файл RegSubmitCertRequest.asp). Вот здесь и возникает ошибка: Код RegSubmitCertRequest.aspКод:<!-- #include FILE="RegHeader.asp" -->
<% ' $Id: RegSubmitCertRequest.asp,v 1.7 2007/02/16 14:54:47 sobolev Exp $ %>
<%
Dim oCertMan
Dim PKCS10
Dim AddInfo
Dim RequestID
Dim Accepted
' Проверить наличие маркера (его корректность будет проверена далее) в переданных через POST данных.
' Если его нет, то выдать ошибку.
' Отправлять на страницу ввода пароля бессмысленно,
' так как нам нужен параметр PKCS10.
' Резюме: если мы попали сюда не по POST, или в форме нет полей TokenID, Password и PKCS10 - то ошибка.
If Request.Form("TokenID") = vbNullString Or Request.Form("Password") = vbNullString Then
Response.Redirect "../Error.asp?Error=" & "Ошибка доступа к странице"
End If
PKCS10 = Request.Form("PKCS10")
AddInfo = Request.Form("UserInfo")
If Request.Form("PKCS10") = vbNullString Then
Response.Redirect "../Error.asp?Error=" & "Ошибка доступа к странице"
End If
Set oCertMan = CreateObject(PROGID_CERTMAN)
' Корректность маркера доступа будет проверена здесь.
oCertMan.SubmitRequest PKCS10, Trim(AddInfo), RequestID, Accepted
...далее еще код
На строке oCertMan.SubmitRequest PKCS10, Trim(AddInfo), RequestID, Accepted внутри функции происходит редирект на Error.php и вылезает ошибка: Цитата:Произошла ошибка
Возникла непредвиденная ошибка. Номер: 0x1527 Сообщение: Connector:Connection time out. HRESULT=0x800A1527 - Client:An unanticipated error occurred during the processing of this request. HRESULT=0x800A1527 - Client:Sending the Soap message failed or no recognizable response was received HRESULT=0x800A1527 - Client:Unspecified client error. HRESULT=0x800A1527
Обратитесь к администратору Как я понимаю, смысл ошибки в том что вышло время ожидания, но не очень понимаю почему? Причём эта ошибка иногда появляется, а иногда нет. Поле PKCS10 точно передается - проверено. Продполагаю, что УЦ "подвисает" и нужно просто попытаться еще раз отправить запрос чуть попозже. Причём именно так и получается - если попытаться чуть позже отправить запрос, то все нормально проходит без ошибок (а иногда всё повторяется с ошибкой). Вопрос вот в чём: Внутри вызываемого метода oCertMan.SubmitRequest при ошибке происходит редирект и никак нельзя обработать исключение. Код самого метода закрытый - внутрь не попасть. Может есть какие-нибудь варианты? "On Error Resume Next" не помогает, т.к. метод не выбрасывает исключений, а сразу редиректит при таймауте соединения.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Здравствуйте. УЦ может "подвисать" в этом методе, например, из-за проблем связи ЦР-ЦС. У Вас включена настройка автоматического одобрения запросов, поданных через веб-интерфейс? В методе SubmitRequest нет никаких редиректов, и тем более в УЦ нет страницы Error.php - у Вас модифицированный веб-интерфейс? Есть ошибки в журнале УЦ? |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 16.01.2013(UTC) Сообщений: 33  Сказал(а) «Спасибо»: 15 раз
|
Цитата:Здравствуйте. УЦ может "подвисать" в этом методе, например, из-за проблем связи ЦР-ЦС. У Вас включена настройка автоматического одобрения запросов, поданных через веб-интерфейс? В методе SubmitRequest нет никаких редиректов, и тем более в УЦ нет страницы Error.php - у Вас модифицированный веб-интерфейс? Есть ошибки в журнале УЦ? Насчет "подвисания" я как раз и подумал в первую очередь, но даже если это так, то очень хотелось бы ловить в коде эту ситуацию и корректно обрабатывать, а не "вываливать" на пользователя сообщение с ошибкой. Автоматическое одобрение у нас включено. Если все происходит без ошибок, то скрипт автоматически перенаправляется на следующий этап RegInstallCert.aspВеб-интерфейс модифицирован, но не значительно. Например рассматриваемый в вопросе файл RegSubmitCertRequest.asp вобще не модифицирован. Но это не особо важно, т.к. ошибка также появляется и в оригинальном веб-интерфейсе. А Error.php всё-таки есть среди скриптов УЦ и появляется в коде скриптов очень часто. Хотябы даже в приведенном листинге Error.php встречается не раз Код:If Request.Form("TokenID") = vbNullString Or Request.Form("Password") = vbNullString Then
Response.Redirect "../Error.asp?Error=" & "Ошибка доступа к странице"
End If
Код:If Request.Form("PKCS10") = vbNullString Then
Response.Redirect "../Error.asp?Error=" & "Ошибка доступа к странице"
End If
А где журнал УЦ искать? Ктати, вот так выглядит таблица запросов на сертификат (при входе в веб-интерфейс) после многих попыток:  Видимо, неудачные попытки, по которым скрипт так и не дождался ответ имеют статус "В ожидании обработки". Отредактировано пользователем 14 мая 2015 г. 17:46:58(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Цитата:Насчет "подвисания" я как раз и подумал в первую очередь, но даже если это так, то очень хотелось бы ловить в коде эту ситуацию и корректно обрабатывать, а не "вываливать" на пользователя сообщение с ошибкой. Перехватывайте в коде asp с помощью On Error, если Вы используете vbscript либо try..catch в случае javascript. Цитата:А Error.php всё-таки есть среди скриптов УЦ и появляется в коде скриптов очень часто. Хотябы даже в приведенном листинге Error.php встречается не раз Возможно, Вы имеете ввиду Error. asp? Цитата:А где журнал УЦ искать? В АРМ Администратора. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 16.01.2013(UTC) Сообщений: 33  Сказал(а) «Спасибо»: 15 раз
|
Цитата:Перехватывайте в коде asp с помощью On Error, если Вы используете vbscript либо try..catch в случае javascript. Уже пробовал: Код:On Error Resume Next
' Корректность маркера доступа будет проверена здесь.
oCertMan.SubmitRequest PKCS10, Trim(AddInfo), RequestID, Accepted
If Err.Number <> 0 Then
Response.Redirect "../Error.asp?Error=" & Err.Description
End If
Всёравно ошибка с таймаутом вылезает. Цитата:Возможно, Вы имеете ввиду Error.asp?  Да, конечно. Опечатался. Журнал нашёл, но там такая же ошибка.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Пробовали менять Response.Redirect на свою обработку? |
|
 1 пользователь поблагодарил Кирилл Соболев за этот пост.
|
sniker оставлено 15.05.2015(UTC)
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 16.01.2013(UTC) Сообщений: 33  Сказал(а) «Спасибо»: 15 раз
|
Спасибо! Разобрался. "On Error Resume Next" прекрасно работает и ловит эту ошибку. Вместо Код:If Err.Number <> 0 Then
Response.Redirect "../Error.asp?Error=" & Err.Description
End If
надо было что-то типа такого делать Код:Response.Write "<br>Попытка 1 ..."
On Error Resume Next
' Корректность маркера доступа будет проверена здесь.
oCertMan.SubmitRequest PKCS10, Trim(AddInfo), RequestID, Accepted
If Err.Number <> 0 Then
Response.Write "<br>Не получилось: (" & Err.Number & ") " & Err.Description
Err.Clear
Response.Write "<br>Попытка 2 ..."
' Корректность маркера доступа будет проверена здесь.
oCertMan.SubmitRequest PKCS10, Trim(AddInfo), RequestID, Accepted
If Err.Number <> 0 Then
Response.Write "<br>Не получилось: (" & Err.Number & ") " & Err.Description
Response.End
End If
End If
Со второй попытки без ошибок всё прошло, даже если с первой не получилось
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Пожалуйста. Учтите только, что при таком подходе первый запрос, отправленный при неудавшимся вызове SubmitRequest так и останется висеть на ЦР. Обойти это не получится. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 16.01.2013(UTC) Сообщений: 33  Сказал(а) «Спасибо»: 15 раз
|
Интересно, а можно ли где-нибудь в настройках увеличить таймаут для ожидания ответа от ЦС? Тогда ничего и придумывать не надо будет. Только пользователь будет ждать подольше.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Да, можно в настройках ЦР. Файл на ЦР \Documents and Settings\All Users\Application Data\Crypto Pro\RA\Inetpub\<номер веб узла модуля доступа>\RA\web.configuration, параметр RaSoapClientTimeout (секунды). |
|
 1 пользователь поблагодарил Кирилл Соболев за этот пост.
|
sniker оставлено 15.05.2015(UTC)
|
|
Форум КриптоПро
»
КриптоПро УЦ
»
КриптоПро УЦ 1.5
»
Connection time out при вызове oCertMan.SubmitRequest
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close