Ошибка при использовании подключения OleDb для SalesLogix с использованием asp.net. Сообщение об ошибке отсутствует, код результата: E_FAIL (0x80004005)

Я использую SalesLogix Connection Provider, и это 32-битный драйвер. когда я пытаюсь открыть соединение, возникает следующее исключение

System.Data.OleDb.OleDbException (0x80004005): сообщение об ошибке отсутствует, код результата: E_FAIL(0x80004005)

Я использую следующую строку подключения в обоих приложениях (веб и рабочий стол)

Provider=SLXOLEDB.1;Data Source=TestServer;Initial Catalog=SLXTestApp;User Id=Alex;Password=alex124;Persist Security Info=True;Extended Properties=Port=1706;Log=Off"

Когда я использую тот же код с той же строкой подключения в настольном приложении (C#). Он успешно открывает соединение, а также получает данные без ошибок. Но выдает ошибку в случае asp.net 4.0.

Ниже приведены конфигурации/настройки моего приложения.

1-Платформа в обоих приложениях одинаковая, т.е. x86.
2-Я использую IIS(7.5.7600.16385) на веб-сервере 2008 R2 с 64-разрядной ОС.
3-Включить 32- бит Applications имеет значение true в пуле приложений.
4 – управляемый конвейерный режим = интегрированный
 5 Aspnet 4.0 (C#)


person Ali    schedule 15.05.2012    source источник


Ответы (1)


Поставщик SalesLogix OLEDB является только 32-разрядным. Вам нужно запустить веб-сайт IIS в 32-битном режиме, чтобы иметь доступ к БД.

Подробнее см. здесь: http://help.webcontrolcenter.com/KB/a1114/how-to-enable-32-bit-application-pool-iis-7-dedicatedvps.aspx

Кажется, вы уже это настроили... Но на всякий случай перепроверьте.

Затем: правильно ли работает драйвер? Обычная проверка заключается в запуске клиента SalesLogix LAN (установите его, если он еще не установлен). Возможно, просто запустив установку клиента, вы решит проблему.

Редактировать: просто чтобы вставить в ответ еще одну причину этой проблемы (которая кажется довольно распространенной) является учетная запись пользователя, запускающая пул приложений, который обычно должен быть локальной системой.

person A. Chiesa    schedule 17.05.2012
comment
Прежде всего, спасибо за ваш ответ. Включить 32-разрядную версию уже верно в ISS. И я установил целевую платформу x86. Кроме того, клиент SalesLogix установлен и работает нормально, и я также использовал тот же код в настольном приложении, которое успешно установило соединение и извлекло данные, но проблема в моем веб-приложении - person Ali; 18.05.2012
comment
ммм ... Я читал, что ваша ошибка обычно означает, что доступ запрещен. Связано с брандмауэром? Попробуйте отключить его. Или проверьте учетную запись пользователя, которую сайт олицетворяет. Попробуйте настроить пул приложений для работы в качестве локальной системы или сетевой службы. - person A. Chiesa; 18.05.2012
comment
Я изменил это на ‹identity impersonate=true /›, но та же ошибка - person Ali; 18.05.2012
comment
Chiesa, Большое вам спасибо :). Я настроил пул приложений для запуска в качестве локальной системы. Затем проблема была исправлена. Еще раз спасибо - person Ali; 18.05.2012
comment
Я столкнулся с той же проблемой, и изменение пула приложений для работы в качестве локальной системы, а не сетевой службы, также сработало для меня. - person nerraga; 13.03.2013