.Net framework требует установки MDAC на сервере 2008

Моя компания недавно использовала tivoli workload scheduler (TWS) для удаленного запуска заданий с z / OS на сервер окон. мы проверили, может ли tivoli успешно запускать службы mssql.

Проблема теперь в том, что у нас есть программа .NET CL, которую мы использовали ежедневно для извлечения некоторых данных из AS400 на сервер mssql, она отлично работала раньше при использовании планировщика Windows и запускалась ежедневно в определенные временные рамки. теперь мы пытаемся централизовать планировщик, чтобы TWS удаленно запускал подготовленный командный файл (он запускал программу CL).

но выполнение программы CL показывает следующую ошибку при попытке подключения к базе данных AS400.

Поставщикам данных .Net Framework требуются компоненты доступа к данным Microsoft (MDAC). Установите компоненты доступа к данным Microsoft (MDAC) версии 2.6 или более поздней.

EDITED: в нормальном сценарии мы предполагали, что программа может успешно запуститься, это должно быть так же, как при использовании планировщика Windows, установить расписание и выполнить его. Единственное отличие состоит в том, что планировщик на данный момент не является планировщиком Windows, а переключается на TWS и запускает программу CL удаленно. но выполнение показывает указанную выше ошибку во время выполнения программы CL. мы понятия не имеем, почему возникает эта ошибка. мы попытались перезапустить программу CL и запланировать ее в планировщике Windows, работает нормально. но расписание на TWS удаленно, ошибка.

Для тестирования и наблюдения мы сделали:

  1. Наш сервер - это Windows server 2008 SP2 x64, я провел некоторые исследования MDAC, используемого в старых версиях Windows, в то время как server 2008 должен поставляться с более новой версией MDAC (WDAC 6.0), и его нельзя переустановить, поэтому я предполагаю, что MDAC / WDAC должен быть установить правильно.

  2. программа CL была скомпилирована с .NET 2.0 / 3.0 / 3.5, и при проверке все они выдали одну и ту же ошибку.

  3. журналы ошибок могли быть созданы для базы данных сервера sql, поэтому я предполагаю, что драйвер подключения, используемый в программе CL, не имеет проблем. но это может быть вызвано драйвером IBMDA400.

  4. TWS использует учетную запись администратора на нашем сервере для запуска пакетных файлов, клиент TWS (слушатель) установлен на нашем сервере для запуска программ на нашем сервере, но мы не знаем, как они подключаются к нашему серверу (SSH? Telnet?), И они Кажется, что на самом деле нет входа на наш сервер для удаленного запуска (запускать нашу работу в тихом режиме).

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

Большое Вам спасибо!.


person Luis Mok    schedule 25.05.2012    source источник
comment
Есть ли в вашем сообщении вопрос? Я дважды прочитал, но не могу найти то, что вы хотите знать.   -  person Uwe Keim    schedule 25.05.2012


Ответы (3)


Для тех, кто ищет, я недавно получил эту ошибку в веб-приложении, несмотря на то, что MDAC 2.8 SP1 уже был установлен на приставке 2008 года. Мы переустановили MDAC, и это, похоже, не помогло. Остановка и запуск пула приложений для уязвимого веб-приложения устранила проблему. Не на 100% ясно, была ли необходима переустановка, или для обновлений Windows или чего-то еще требуется iisreset, которого не было.

person Daniel    schedule 23.05.2013
comment
Это было полезно, спасибо. С учетом сказанного, я не смог решить проблему, пока не перезапустил IIS в целом, а не только пул приложений. - person Zach La Lond; 12.11.2013
comment
Повторное использование пула приложений либо создает, либо устраняет проблему. Я нашел эту ссылку: Тайна MDAC Ошибка установки. Что действительно хорошо объясняет, что могло его вызвать. Как уже говорилось, установка «Загрузить профиль пользователя», кажется, решает эту проблему. - person Matt Roy; 16.12.2013
comment
Мы получили ту же ошибку, и перезапуск пула приложений помог нам исправить эту ошибку. Также исправлено несколько ошибок GDI. - person Kwaak; 08.04.2014

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

  1. Откройте консоль управления IIS
  2. Щелкните "Пулы приложений"
  3. Щелкните правой кнопкой мыши пул вашего веб-сайта и выберите «Дополнительные настройки».
  4. Измените настройку «Загрузить профиль пользователя» на «Истина».
person Sam Anwar    schedule 21.10.2014

Я могу дать вам лишь некоторые возможности для расследования.

  1. Вы можете попробовать использовать поставщик данных IBM DB2 iSeries ADO.NET вместо поставщика IBMDA400 OLE DB. У моей команды был аналогичный опыт, когда мы реализовали проект по переплатформенности на более новый Windows Server, который был x64. По какой-то причине у нас были очень странные результаты при попытке использовать старые поставщики OLE DB в наших .NET Windows Services. Позже мы узнали, что это было из-за того, что наш сервер был 64-битным.

  2. Я подозреваю, что у вас проблема с 32-битным драйвером IBMDA400. Проверьте, компилируете ли вы свою программу .NET CL как 64-битную. Вы можете попробовать скомпилировать свою программу как 32-разрядную версию приложение и включение Wow64 на вашем сервере.

Надеюсь, что один из них приведет вас к решению!

person noxsoul    schedule 25.05.2012
comment
Повторного использования пула приложений достаточно - person SENA; 11.03.2020