• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

зависает клиент при работе с Odbcconnection.

  • Автор темы Автор темы Реник
  • Дата начала Дата начала
Р

Реник

Добрый день всем.!

Возникла следующая проблема:

На кнопку повесил код, который запускает RunOnserver агента, который должен соединяться с SQL-таблицей.

На сервере, где должен запускаться агент настроил ODBC- драйвер для коннекции к таблице. Проверил коннекцию-соединение есть.

Когда нажимаю на кнопку, то клиент польность зависает. Вот код агента :

зависает нас строке "Call con.ConnectTo( sdatasource, suserid, spasswd)"

Dim con As New ODBCConnection
Dim sdatasource As String, suserid As String, spasswd As String

Msgbox "Агент стартовал: GetBPInfo FromSQL"
Set qry = New ODBCQuery
Set result = New ODBCResultSet
Set qry.Connection = con
Set result.Query = qry
sdatasource="Datasource"
suserid="user1"
spasswd="password"
Msgbox "Коннектимся к таблице"
Call con.ConnectTo( sdatasource, suserid, spasswd)
Msgbox "Коннект есть"
If Not con.ConnectTo("BP_Info") Then
Msgbox "Не удалось подключиться к SQL-таблице"
Else
Msgbox "Подключение удалось"
End If

call con.Disconnect
 
зависает нас строке "Call con.ConnectTo( sdatasource, suserid, spasswd)"
В логе лотусового сервера : "Коннект есть".
Это как? Если в логе "Коннект есть"

Call con.ConnectTo( sdatasource, suserid, spasswd)
Msgbox "Коннект есть"
If Not con.ConnectTo("BP_Info") Then <-Виснет тут
 
Вполне возможно, что зависание вызвано выводом диалогового окна, которого Вы не видите и не можете на него отреагировать (запрос пароля, информация об ошибке и т.п.)
 
Вполне возможно, что зависание вызвано выводом диалогового окна, которого Вы не видите и не можете на него отреагировать (запрос пароля, информация об ошибке и т.п.)

тогда как мне избавиться от этого окна?
 
Из справки про odbcConnection.SilentMode:
Some ODBC drivers use several layers of software to reach the data, and an intermediate layer may prompt directly for the user ID and password, ignoring the request not to do so.
Гуглоперевод:
Некоторые драйверы ODBC использования нескольких слоев программного обеспечения для достижения данных и промежуточного слоя может побудить непосредственно для ID пользователя и пароль, игнорируя просьбу не делать этого
 
на сервере пущать ОДБЦ - этакрута :)
 
А агент-то отрабатывает? Что в логе в первом и втором случае?


если агент запускать по расписанию, то он отрабатывает до конца. Буквально за несколько секунд

Если агент запускать по кнопке (RunOnServer) : то последнее сообщение в логе сервера "Коннектимся к таблице".
 
Да, кстати, а у агента какие параметры безопасности установлены? И есть ли нужные права у пользователя?
 
агент могут запускать все пользователи.
 
агент могут запускать все пользователи
Что-то не уверен. Судя по
если агент запускать по расписанию, то он отрабатывает до конца. Буквально за несколько секунд
Если агент запускать по кнопке (RunOnServer) : то последнее сообщение в логе сервера "Коннектимся к таблице"
проблема в настройках безопасности агента и правах пользователей. Может попробовать толкать агента на сервере другим серверным агентом, подписанным сервером и от имени сервера (Run on behalf of)?
 
не так - секурити о кот. грили выше, настройка под систем DSN, траблы по памяти (кот. могут уронить сервак), интреактивные окошки - кот. есть абсурд для сервера (а они могут выпрыгивать, вне зависимости от желаний)
 
победил я эту траблу сам.

У меня была реплика этой базы на другом серваке, я на нём настроил одбц и всё заработало))
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы