asp.net +oracle 连接问题

High_Jer 2015-04-06 11:38:19
各位好,请问一下,基于asp.net oracle 进行项目创建时,进行连接,已经安装了oracle client,还用安装ODAC吗?我写的webservice 无法链接,我自己翻遍了各大论坛,也没解决,个人觉得是oracle配置没有解决,希望帮我个忙,详细一点,谢了

环境是win7 64 旗舰,oracle 11g 64,vs2008
返回错误:
System.TypeInitializationException: “Oracle.DataAccess.Client.OracleConnection”的类型初始值设定项引发异常。 ---> Oracle.DataAccess.Client.OracleException: 提供程序与此版本的 Oracle 客户机不兼容
在 Oracle.DataAccess.Client.OracleInit.Initialize()
在 Oracle.DataAccess.Client.OracleConnection..cctor()
--- 内部异常堆栈跟踪的结尾 ---
在 Oracle.DataAccess.Client.OracleConnection..ctor(String connectionString)
在 Service.Page() 位置 e:\VS2008\Project\OracleText\App_Code\Service.cs:行号 33


以下是简单的demo:
using System;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;



[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class Service : System.Web.Services.WebService
{
public Service () {

//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
}

[WebMethod]
public string HelloWorld() {
return "Hello World";
}

[WebMethod]
public string Page()
{
string oradb = "Data Source=orcl; User ID=system; Password=Manager08;Integrated Security=no";
OracleConnection conn = new OracleConnection(oradb);
conn.Open();
return "succeed";
conn.Close();
}

}
...全文
135 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mirrorspace 2015-04-06
  • 打赏
  • 举报
回复
VS的调试服务器是32位的,如果用64位的就会报不正确的程序.使用32位的客户端时是可以的. 程序部署到IIS上之后,可以使用64位的,只是这样就不方便调试,使用32位客户端时还要打开IIS上32位程序的支持
引用 4 楼 u013223086 的回复:
[quote=引用 1 楼 mirror030 的回复:] 可以尝试使用oracle11g 32位客户端 C#连接oracle,使用odp.net, OracleAccessData.Dll这个由Oracle指供的库,用法和ado.net一样
64位客户端有什么问题吗?那样能兼容吗,谢谢[/quote]
High_Jer 2015-04-06
  • 打赏
  • 举报
回复
引用 3 楼 SPFarm 的回复:
oracle client安装完之后,配置了吗? 配置一下,看看能不能连上服务器。如果client能连上了,那么程序也应该能连上。
使用 NCA配置成功,测试连接也可以,使用代码就不成了
High_Jer 2015-04-06
  • 打赏
  • 举报
回复
引用 1 楼 mirror030 的回复:
可以尝试使用oracle11g 32位客户端 C#连接oracle,使用odp.net, OracleAccessData.Dll这个由Oracle指供的库,用法和ado.net一样
64位客户端有什么问题吗?那样能兼容吗,谢谢
SPFarmer 2015-04-06
  • 打赏
  • 举报
回复
oracle client安装完之后,配置了吗? 配置一下,看看能不能连上服务器。如果client能连上了,那么程序也应该能连上。
mirrorspace 2015-04-06
  • 打赏
  • 举报
回复
可以尝试使用oracle11g 32位客户端 C#连接oracle,使用odp.net, OracleAccessData.Dll这个由Oracle指供的库,用法和ado.net一样

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧