首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

ASP.NET MVC3 应用Entity framework连接ORACLE报错,高手帮忙看看

2013-08-09 
ASP.NET MVC3 使用Entity framework连接ORACLE报错,高手帮忙看看.WEB.CONFIG中配置如下:connectionString

ASP.NET MVC3 使用Entity framework连接ORACLE报错,高手帮忙看看.
WEB.CONFIG中配置如下:


<connectionStrings>
    <add name="pgdb"
         connectionString="Data Source=pgdb;Persist Security Info=True;User ID=wbiadmin;Password=wbiadmin prot=1521"
         providerName="System.Data.OracleClient" />
</connectionStrings>


TNS配置如下:

pgdb =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.69.32)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = pgeaitest)
    )
  )


结果程序运行时报错:
对类型“System.Data.OracleClient.OracleConnection”的存储区提供程序实例调用“get_ProviderFactory”方法后,返回 null。存储区提供程序可能未正常运行。

我自己写的数据库访问层都没问题, 奇怪了.
[解决办法]
看看 listener.ora

或者用plsql、sqlplus 之类能不能连上。。。
[解决办法]
用ODP.NET連接是可以的。
[解决办法]
先在PL/SQL里面去看看能不能连接上数据库,如果可以的话再去调试你的代码。
[解决办法]


1.       在C:\Windows\assembly目录下查找是否有EFOracleProvider.dll,如果没有,解压EFOracleProvider.rar ,在命令行下运行Gacutil.exe /i EFOracleProvider.dll。

修改machine.config文件。

文件的路径为C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config文件夹中,找到machine.config文件,用记事本打开,找到

<system.data>

       <DbProviderFactories/>

</system.data>

改成如下内容

<system.data>

 <DbProviderFactories>

<add name="EF Oracle Data Provider" invariant="EFOracleProvider" description="EF Provider for Oracle testing" type="EFOracleProvider.EFOracleProviderFactory, EFOracleProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=def642f226e0e59b"/>



      <add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.1.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>

        </DbProviderFactories>

    </system.data>

热点排行