• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Проблемы с подключением к БД

Автор e7now, 30.06.14, 11:38:21

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

e7now

Здравствуйте. Я столкнулся со следующей проблемой.
Для подключения к БД, я использую следующий код:

static object inReturnCode;
static object stError;
Guid loodsmanGuid = new Guid("392BA982-A82F-44AB-BA8A-69BE25199F73");
MainSystem loodsman = (MainSystem)Activator.CreateInstance(Type.GetTypeFromCLSID(loodsmanGuid, server, true));
loodsman.ConnectToDB(bd, out inReturnCode, out stError);           
if (Convert.ToInt32(inReturnCode) != 0)
{
   MessageBox.Show( stError.ToString() + " " + inReturnCode);
}
else
{
   MessageBox.Show("Соединение установлено!");
}

В результате выполнения, появляется окно с сообщением "-2147023550:OLE DB error occured. Code 80070542h -2"
К сожалению, я не смог по коду ошибки найти, в чем же проблема.

1. Код правильный. На другом компьютере соединение устанавливается без проблем.
2. ЛОЦМАН установлен.
3. Через ЛОЦМАН соединение с БД устанавливается успешно.

Кто-нибудь знает, в чем может быть проблема?

e7now

Попробовал подключиться следующим образом:

static object inReturnCode;
static object stError;
Guid loodsmanGuid = new Guid("392BA982-A82F-44AB-BA8A-69BE25199F73");
MainSystem loodsman = (MainSystem)Activator.CreateInstance(Type.GetTypeFromCLSID(loodsmanGuid, server, true));
loodsman.ConnectToDBEx("Loodsman", user, password, out inReturnCode, out stError);            
if (Convert.ToInt32(inReturnCode) != 0)
{
   MessageBox.Show("Ошибка соединения " + inReturnCode + " " + stError);
}
else
{
   MessageBox.Show("Соединение установлено!");

}


Если user="sa"
Выводится сообщение: "Ошибка соединения 100217 Нет доступа к базе данных [Loodsman]."
1. В логе ошибок SQLServer никаких сообщений нет

Если имя пользователя совпадает с именем пользователя windows, например "server\user1"
Выводится сообщение: "Ошибка соединения -2 18456:Login failed for user 'server\user1'"
В логе ошибок SQL Server появляется сообщение:
2014-07-03 10:10:03.86 Logon       Error: 18456, Severity: 14, State: 6.
2014-07-03 10:10:03.86 Logon       Login failed for user 'server\user1'. Reason: Attempting to use an NT account name with SQL Server Authentication. [CLIENT: <named pipe>]
1. Имя пользователя есть как в ЛОЦМАН Конфигуратор, так и в SQL Server
2. ЛОЦМАН Клиент авторизуется (Windows-аутентификация)

Сергей Фадеев

#2
Попробуйте проверить настройки COM+ компонентов на машине где происходит запуск.
Службы компонентов - Мой компьютер - Свойства - Свойства по умолчанию

Подключиться, Делегирование
И свойства для ASCON Applications.

Затем перезапустить сервер приложений.
+ Благодарностей: 1

e7now

На клиенте и на сервере свойства связи DCOM: подключиться, определить.
На сервере свойства ASCON Applications->Безопасность: подключиться, делегирование.

Менял свойства "Мой компьютер" на клиенте на подключиться, делигирование. Изменений никаких.

e7now

Да, действительно. Подключился. Поставил делегирование на стороне сервера. Спасибо.