oracle11g+ef+vs2013做的项目在部署的时候碰到的问题

最近公司做一个项目,用到了ef和oracle11g,开发工具用的是vs2013,开发完成后,在本机上完美运行,但是,当到了要到服务器上部署的时候,就出了问题,服务器环境是server08R2,开发环境是vs2010,结果在发布到IIS上之后,运行报了:未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项。试图加载格式不正确的程序。经过排查发现,服务器是64位的,而我装的11g是32位的,所以它默认去到了64位的GAC下找Oracle.DataAccess。这时候我想到了把IIS应用程序池里启用32位应用程序改成True试试,结果这个错消除了,然后又报了另一个错:指定的存储区提供程序在配置中找不到,或者无效。 ---> System.ArgumentException: 找不到请求的 .Net Framework Data Provider。可能没有安装。又折腾了很长时间,经过上网搜索,终于找到了解决的办法,请注意C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config下machine.config下的这句话:<add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />注意其中的“invariant="Oracle.ManagedDataAccess.Client”这段,Invariant的意思是相当于在VS2010的开发环境中配置了别名Oracle.ManagedDataAccess.Client,所以你如果没有安装Oracle Data Provider For .Net或者该处的invariant与连接字符串中的provider名字不一样,你就会出现上面的这个错。经过仔细的对比,我发现我的webconfig中一开始provider名字确实和machine.config中的不一样,我把它改成一模一样,然后就成了,不报任何错了。

转载于:https://www.cnblogs.com/wangjimmy/p/4626636.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值