我正在尝试使用StackService.ORMLite(Ver :)从SQL Server到Oracle更改现有的c#代码。我按照建议做了所有必要的更改。现在我遇到了问题" 无法找到请求的.Net Framework数据提供程序。它可能未安装。"
var db = new OrmLiteConnectionFactory(AppSettingsHelper.TryGetValue(ConfigKeys.ContentLoaderDataBase, default(string)), OracleDialect.Provider);
FunqContainer.Register<IDbConnectionFactory>(db);
FunqContainer.Register<IContentLoaderRepository>(c => new ContentLoaderRepository(db));
FunqContainer.RegisterAutoWiredAs<HttpRequestor, IHttpRequestor>();
FunqContainer.RegisterAutoWiredAs<Transformer, ITransformer>();
FunqContainer.RegisterAutoWiredAs<WKH.MR.ContentLoader.Agent.XmlSerializer, IXmlSerializer>();
FunqContainer.RegisterAutoWiredAs<WKH.MR.ContentLoader.Agent.FieldParser, IFieldParser>();
我正在使用ODP.Net提供程序版本:4.112.3.0并将Oracle.DataAccess引用包含到项目中。 在运行时打开数据库连接时,它会抛出异常&#34;无法找到请求的.Net Framework数据提供程序。它可能没有安装。&#34;。可能是什么问题?
答案 0 :(得分:2)
假设你的ODP配置是:
<connectionStrings>
<add name="yourconfig" providerName="Oracle.DataAccess.Client"
connectionString="Data Source=(..);User Id=..." />
你只需要:
1.添加&#34; Oracle.DataAccess.dll&#34;提交给您的申请参考文件
(通常是路径:
%ORACLE_HOME%\product\..\ODP.NET\bin\{version}\Oracle.DataAccess.dll
2.ADD在web.config下的两个部分 2.1 &#34; configuration \ configSections&#34;
<section name="oracle.dataaccess.client"
type="System.Data.Common.DbProviderConfigurationHandler, System.Data,Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
2.2 &#34; system.data \ DbProviderFactories&#34; (如果不存在则创建它)
<remove invariant="Oracle.DataAccess.Client" />
<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={your version}, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
我解决了与你相同的问题。请记住确保版本相同,即&#34;版本= {版本}&#34;与dll文件版本相同 祝好运!
顺便说一句:我建议这篇帖子帮助来解决 Oracle连接问题 Oralce Data Provider for .net,这可以节省很多时间。
ServiceStack很棒,ORMLite很棒,我希望它可以帮助使用Oralce的人(客户该死的)