写了一个webservice访问orancle数据库,本机安装了oracle10g服务端,用的System.Data.OleDb连接,在本机用IIS测试webservice时总是提示下面的错误:
System.Data.OleDb.OleDbException: 未找到 Oracle 客户端和网络组件。这些组件是由 Oracle 公司提供的,是 Oracle 8i 版 (或更高) 客户软件安装的一部分。在安装这些组件之前,将无法使用此提供程序。
   在 System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
   在 System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
   在 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
   在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
   在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   在 System.Data.OleDb.OleDbConnection.Open()
   在 WebService.query(String str)上网查了,说是没有安装客户端和权限的问题,我把权限改了,没有安装客户端,还是相同的错误。但是用asp.net连接该数据库进行操作时没有问题。不明白是怎么回事,难道webservice开发用到了一些服务端没有而客户端有的组件?是不是装了服务端必须还要装客户端?请高手指教

解决方案 »

  1.   

    运行webservice的机器需要安装oracle客户端。
      

  2.   

    我的webservice程序和oracle10g服务端都是在同一个机子上,所有的测试都是在本机做的。我用windows程序试了,也可以连,难道是运行webservice需要什么特殊的要求?请高手给讲解一下
      

  3.   

    在 System.Data.OleDb.OleDbConnectionInternal
    ==============================================
    你可能没有安装 oracle 的 OleDB provider 接口, oracle 的安装选项中有一个 windows 组件选项包含这一项