在WCF中NPOCO无法加载odp.net,没有找到对应的代理

详细回答请见:https://stackoverflow.com/questions/9928361/unable-to-find-the-requested-net-framework-data-provider-in-visual-studio-2010

上面的回答只是个引子

究其原因,oracle安装时是分64位和32位的,ODP.net也会随oracle数据库的安装而安装,而asp.net默认是以32位兼容模式来运行的,32位的asp.net运行的是32位.netfreamwork,这就是问题的所在,即:32位的.netfreamwork中没有注册odp.net组件,所以会出现这种问题!解决办法有两个:

1.在.netfreamwork64的对应版本中(也就是你项目使用的框架)找到machine.config配置文件,然后在配置文件中找到<system.data>和<DbProviderFactories>标签(它俩是在一起的)将odp.net的注册标签粘贴到.netfreamwork32位版本中machine.config的<system.data>位置(注意xml格式)

2.修改asp.net的生成目标平台,设置为x64,然后将IIS中的服务器应用程序池中的高级设置里的“启动32位兼容模式”设置为false,在VS中的工具-选项-项目环境和解决方案--web项目找到“对网站和项目使用IIS Express的64位版本”并勾选上。然后重启电脑即可

第二种操作的详细解决办法见:https://www.cnblogs.com/ymj126/p/5451273.html

猜你喜欢

转载自www.cnblogs.com/chengxuyuanww/p/9021862.html