Что нужно для работы с Oracle из Visual Studio 2010?

Что нужно для работы с Oracle из Visual Studio 2010?

Среда: 1 - На ПК для разработки:

Windows 7 Ultimate 64-разрядная (оперативная память 4 ГБ, двухъядерный процессор 2,6 ГГц)

  • Windows 7 Ultimate 64-разрядная (оперативная память 4 ГБ, двухъядерный процессор 2,6 ГГц)
  • Visual Studio 2010 Ultimate
  • ODAC (из пакета ODTwithODAC112012.zip) (также ODAC10203x64.zip не устанавливается в Windows 7 64)

2 - На сервере:

  • Windows 2003
  • Oracle 11g (11.2.0.1.0)
  • .NET (2.0, 3.0, 3.5, 4.0) (SP установлены)

Проблема: (просто) Если я создаю консольное приложение в vs и устанавливаю версию .NET на 3.5, а plateform на x86, оно работает на компьютере разработки, но не на сервере. Если я установил для пластины x64 или Any CPU, это не сработает; ни на компьютере разработки, ни на сервере (развернут).

Я поискал и обнаружил, что в декабре будет поддержка .NET 4 для ODP.NET (64). Но я не компилирую .NET 4.0! Но .NET 3.5 (внутренне это просто .NET 2.0). Другие руководства и инструкции игнорируют любые проблемы с 32-64 аспектом этого ада!

Спасибо заранее!


person Kaveh Shahbazian    schedule 07.12.2010    source источник


Ответы (1)


Установлено ли на сервере клиентское программное обеспечение ODP?

Это может быть 32 или 64 бит. Скомпилируйте в ANYCPU, и это не должно иметь значения (если бы вы использовали 4.0, вам пришлось бы использовать 32-битную версию, так как она, похоже, не готова к 64-битной).

Но поскольку вы используете ODTwithODAC112012, вы используете самую последнюю и лучшую ODP (локально), поэтому вы должны быть настроены на 32-битный запуск. Просто убедитесь, что он установлен на сервере, и вы должны быть настроены. если он установлен, какие ошибки вы получаете?

вот некоторая справка по форуму на сайте oracle: Тема: версия oracle.dataaccess для промежуточного языка .dll и Как определить, правильно ли настроен мой веб-сервер для ODP.Net?

Убедитесь, что ODP установлен (% ora_home% \ 11.2.0 \ client_1 \ odp.net).

person Harrison    schedule 07.12.2010
comment
Спасибо; Да, на сервере установлен ODP.NET (я думаю, что он включен в саму 11g - версию wondows). Указанные вами потоки дают сообщение Указанный поток [0] не найден. на сайте оракула. - person Kaveh Shahbazian; 07.12.2010
comment
Вы можете удалить последний символ из ваших ссылок, чтобы они работали. - person Kaveh Shahbazian; 07.12.2010
comment
@Kaveh Shahbazian, я не могу сказать так или иначе (я обычно использую веб-серверы Window, попадающие в серверную часть Unix Oracle), но если вы можете убедиться, что ODP действительно установлен, это было бы здорово, также какую ошибку вы получаете? - person Harrison; 07.12.2010
comment
Если я использую Oracle.DataAccess и компилирую как x64 или AnyCPU, я получаю [Не удалось загрузить файл или сборку Oracle.DataAccess, Version = 2.112.1.2, Culture = нейтральный, PublicKeyToken = 89b483f429c47342 или одну из его зависимостей. Была сделана попытка загрузить программу с неправильным форматом.], И если я использую System.Data.OracleClient и компилирую как x64 или AnyCPU, я получаю [Попытка загрузить клиентские библиотеки Oracle сгенерировала исключение BadImageFormatException. Эта проблема возникает при работе в 64-битном режиме с установленными 32-битными клиентскими компонентами Oracle.] - person Kaveh Shahbazian; 07.12.2010
comment
@ Каве Шахбазян, вам нужно запустить это как 64-битное приложение? почему бы вам не установить ODTwithODAC112012 на сервер и запустить его как 32-битный? также проверьте GAC (c: \ windows \ Assembly) для Oracle.DataAccess и посмотрите, какая версия / proc там - person Harrison; 07.12.2010
comment
Потому что 32-битный оракул не воспользуется преимуществами 64-битной системы (у Oracle 13 ГБ из 16 ГБ памяти занято на сервере (ах)). До Windows 7 и Visual Studio 2010 я использовал XP SP3 и VS 2008. После этого изменения все обречено, и единственная 64-битная версия Oracle - это ODAC10203x64.zip, который не работает в Windows 7 x64! (Личный комментарий: наши лица, принимающие решения - в этом вопросе - думают, что только Oracle может справиться с нашей нагрузкой! Я сомневаюсь, что это правда! Думаю, со временем я ненавижу Oracle все больше и больше.) - person Kaveh Shahbazian; 07.12.2010
comment
@Kaveh Shahbazian, я предполагаю, что я хотел, чтобы было больше «посмотреть, будет ли работать 32-битная версия», чем что-либо еще. Я согласен, что 64 бит лучше. Вы еще раз проверили, какая версия находится в GAC? так как вы не используете 4.0, вы должны быть уверены, что ODAC10203x64 установлен на сервере и использует ANYCPU. Я скомпилировал Oracle на 32-битном anyCPU и установил его на 64-битный веб-сервер, поэтому он должен работать. - person Harrison; 07.12.2010
comment
@Kaveh Shahbazian перейдите по этой ссылке, forum.oracle.com/forums/ - person Harrison; 07.12.2010
comment
Спасибо за ссылку. Это частично отвечает на мой вопрос. Но с тем, что у меня есть под рукой, я должен использовать ODAC10203x64, который нельзя установить в Windows 7; это моя текущая проблема! И я надеюсь, что он выйдет в декабре; потому что предыдущий график был на ноябрь :( - person Kaveh Shahbazian; 07.12.2010