Asp.Net通过ODBC连接Oracle数据库
本来有个项目是通过安装Oracle client然后让asp.net引用System.Data.OracleClient来访问Oracle数据库的,但是不知道为什么老是报:ORA-12170:连接超时的错误,(客户的服务器配置是:Windows Server 2008 R2 64bit 我刚开始安装的oracle client 是32bit ,最后报什么:require oracle version 8.1以上版本什么什么的。。。没办法我只好卸载这个版本,然后在Oracle官网上下载了一个Oracle Client 64bit来安装,安装好后就没有这个问题了),tnsping,ping,telnet Ip 1521都是通的,但是就是连接不上,不过别人都能连接上,唯独我的就不行,在网上搜索好多帖子,文章都不能解决问题,在客户那里的时候,客户的网络组人员说:网络都是通的,这不是网络原因!客户的数据库组的的人员说:数据库安装是对的,这不是数据库的原因!你tmd的这是在开玩笑吗,我也是醉了,在群里问群友叫他们帮我解决下这个问题,都说是tns的问题,但是tns都是通过net manager配置的,什么空格 什么东西都不存在的事,所以不是tns的问题,然后有个群友开玩笑的对我说:恭喜你,你见鬼了!最后群里有个大神,他给我了一个dbvis_windows_8_0_10软件,貌似是通过java来连接数据库的,然后引用一下:ojdbc6.jar就可以访问了!!!这是为何,我到现在都搞不清楚,不过我的项目是asp.net所以就算连接上了,对我也没什么用,所以我必须想想其它办法 来连接Oracle,然后满世界的在网上搜索文章,看看关于用什么办法不通过安装Oracle Client来访问Oracle!!!
终于被我找到了,可以通过ODBC来连接访问Oracle,然后参考了几篇网上的文章做好了配置,运行,确实可以了,不过在这个过程中也走了不少弯路:如下
1、不需要在本地,或者服务器上设备ODBC数据源,但是你非常通过本地这样设置的话,那你在web.config下的连接字符串可以写成这样:
<add key="Oracle" value="DSN=155oracle;Uid=zhangwei;Pwd=zhangwei"/>
这样你就可以访问数据库了,但是,我说但是,为什么说我不这样设置数据源呢!你想啊,难道用户要访问你的数据库都要设置本地ODBC数据源,显然这不是正确的办法,当然这样也不错,可以做为测试用,但是不能做为生产用。那么真正在生产环境中我们的连接字符串如何写呢,如下:
<add key="Oracle" value="Driver={Microsoft ODBC for Oracle};Server=192.168.1.155/znxj;Uid=zhangwei;Pwd=zhangwei"/>
注意:上面的斜体部分,如果你部署在服务器上这个ip就不需要了。
总结:
1、在配置ODBC数据源的时候不是用户名写错,就是服务器写错,反正自己当时也不知道哪个是对的,最后能成功也是靠我自己 的经验慢慢改对的,网上有些文章也不全对,这点希望大家有所保留。
参考文章:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
2013-11-19 SWFUpload 中文乱码问题