У меня есть приложение Web Forms в .NET 4.0, что я бегу с beta Oracle EF-aware data provider, и я хочу, чтобы выполнить «ненавязчивый» развертывания Oracle в поле Win2k8, как показано на manySOsolutions.Ненавязчивый Oracle развертывания на Windows Server 2008
В окне Win2K8 установлена существующая установка Oracle Instant Client, с которой я не могу ни работать, ни удалять, и она имеет запись в переменной среды PATH в окне Win2K8. Согласно this SO answer, мне не нужно устанавливать PATH для моих Oracle DLL, так как у меня есть DllPath
, установленный в web.config.
Я следую процедуре от here, но я все еще получаю ошибку provider is not compatible with the version of Oracle client
.
Вот мой (неудачная) установки, как сейчас:
Oracle библиотеки DLL в bin
директории моего веб-приложения, и установите Copy ВсегдаНе копируйте.
Платформа и Platform Target настройки установлены на x86 в моей локальной конфигурации сборки.
32-разрядные приложения: включил в пул приложений (.NET 4.0) в поле Win2K8.
Oracle библиотеки DLL являются нет в GAC, являются ли они представить в GAC_32
и GAC_64
каталогов на поле Win2k8.
Мой web.config (но не мой Win2k8 machine.config) содержит следующее:
<configuration>
<configSections>
<section name="oracle.dataaccess.client" type="System.Data.Common.DbProviderConfigurationHandler, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>
<oracle.dataaccess.client>
<settings>
<add name="DllPath" value="C:\inetpub\wwwroot\myapp\bin"></add>
<add name="FetchSize" value="65536"></add>
<add name="StatementCacheSize" value="10"></add>
<add name="TraceFileName" value="c:\temp\odpnet2.log"></add>
<add name="TraceLevel" value="0"></add>
<add name="TraceOption" value="0"></add>
</settings>
</oracle.dataaccess.client>
<system.data>
<!-- Version=4.112.2.50 -->
<DbProviderFactories>
<add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.112.2.50, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>
</system.data>
<connectionStrings>
<add name="MyEntities" connectionString="metadata=res://*/MyModel.csdl|res://*/MyModel.ssdl|res://*/MyModel.msl;provider=Oracle.DataAccess.Client;provider connection string="DATA SOURCE=**<using EZCONNECT format here>**" providerName="System.Data.EntityClient" />
</connectionStrings>
<configuration>
Само приложение развертывается успешно, и я могу запустить страницы, которые не ссылаются на мои библиотеки DLL Oracle. Но для тех, кто ссылается на Oracle, я все еще получаю ошибку совместимости с поставщиком.
Что мне не хватает?
Еще раз спасибо за помощь.
ОБНОВЛЕНИЕ: Веб-приложение работает на цели Win2K8 с .NET 4.0, EF4.1 и поставщиком Oracle EF, полностью отделенным от другой активной установки ODAC. Нет переменной PATH, без установки из Universal Installer, нет DLL-библиотек Oracle в GAC.
Hi bflow1. Было бы полезно включить в ваш ответ более подробно, так что другие пользователи могут извлечь из этого выгоду. На mininum было бы полезно назвать пропущенную DLL. –
Ссылки, которые я опубликовал в списке вопросов DLL, и мой вопрос содержит все подробности моей полной настройки. – bflow1