读取局域网内数据服务器,提示ORA-01019错误

问题描述

做了一个读取局域网内数据库的webservice,webservice提供给外网的应用程序使用运行之后,点击webservice网页中的方法连接,提示错误<?xmlversion="1.0"encoding="utf-8"?><stringxmlns="http://tempuri.org/"><bai_table><result>System.Data.OleDb.OleDbException:ErrorwhiletryingtoretrievetextforerrorORA-01019在System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionStringconstr,OleDbConnectionconnection)在System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptionsoptions,ObjectpoolGroupProviderInfo,DbConnectionPoolpool,DbConnectionowningObject)在System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnectionowningConnection,DbConnectionPoolGrouppoolGroup)在System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnectionowningConnection)在System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnectionouterConnection,DbConnectionFactoryconnectionFactory)在System.Data.OleDb.OleDbConnection.Open()在Service.getTaskInfo(DateTimestartTime,DateTimeendTime)位置d:我的文档VisualStudio2008WebSitesWebSite1App_CodeService.cs:行号41</result></bai_table></string>

我的代码如下(很简单,只想测试一下webservice能否使用)usingSystem;usingSystem.Web;usingSystem.Web.Services;usingSystem.Web.Services.Protocols;usingSystem.Xml;usingSystem.Data;usingSystem.Text;usingSystem.IO;usingSystem.Collections;usingSystem.Data.OleDb;[WebService(Namespace="http://tempuri.org/")][WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]//若要允许使用ASP.NETAJAX从脚本中调用此Web服务,请取消对下行的注释。//[System.Web.Script.Services.ScriptService]publicclassService:System.Web.Services.WebService{publicService(){//如果使用设计的组件,请取消注释以下行//InitializeComponent();}[WebMethod]publicStringgetTaskInfo(DateTimestartTime,DateTimeendTime){//创建新的XML对象XmlDocumentdoc=newXmlDocument();//导入指定xml文件doc.LoadXml("<bai_table>"+"</bai_table>");//获取XML对象的根节点XmlNoderoot=doc.DocumentElement;//数据库连接StringConnectionString=GetConnectString();OleDbConnectionconnection=newOleDbConnection(ConnectionString);StringQueryString="selectpk_task,vbillcode,task_no,dbilldate,vagentid,pk_deptdocfrombai_table"+"wheredr!=1anddbilldate>='"+startTime.ToString()+"'anddbilldate<='"+endTime.ToString()+"'";try{connection.Open();OleDbCommandcommand=newOleDbCommand();command.Connection=connection;command.CommandText=QueryString;OleDbDataReadersr=command.ExecuteReader();intrownum=0;while(sr.Read()){//每一次循环,先在根节点下面建立行节点,并且给行节点的行号赋值XmlElementrowelement=doc.CreateElement("rowelement");//行号赋值为rownum,在循环尾+1rowelement.SetAttribute("rowNo",rownum.ToString());//将行节点添加到根节点中root.AppendChild(rowelement);//给行节点添加每一个列节点并赋值XmlElementelem0=doc.CreateElement("pk_task");rowelement.AppendChild(elem0);Stringpk_task=sr["pk_task"].ToString();elem0.InnerText=pk_task;//....同上XmlElementelem1=doc.CreateElement("vbillcode");rowelement.AppendChild(elem1);Stringvbillcode=sr["vbillcode"].ToString();elem1.InnerText=vbillcode;//...同上XmlElementelem2=doc.CreateElement("task_no");rowelement.AppendChild(elem2);Stringtask_no=sr["task_no"].ToString();elem2.InnerText=task_no;//...同上XmlElementelem3=doc.CreateElement("dbilldate");rowelement.AppendChild(elem3);Stringdbilldate=sr["dbilldate"].ToString();elem3.InnerText=dbilldate;//...同上XmlElementelem4=doc.CreateElement("vagentid");rowelement.AppendChild(elem4);Stringvagentid=sr["vagentid"].ToString();elem4.InnerText=vagentid;//...同上XmlElementelem5=doc.CreateElement("pk_deptdoc");rowelement.AppendChild(elem5);Stringpk_deptdoc=sr["pk_deptdoc"].ToString();elem5.InnerText=pk_deptdoc;//将行num+1rownum++;}sr.Close();}catch(Exceptionex){XmlElementelem1=doc.CreateElement("result");elem1.InnerText=ex.ToString();root.AppendChild(elem1);}doc.Save(@"D:/WebServices/bai_table.xml");returndoc.OuterXml;}publicStringGetConnectString(){return"provider=MSDAORA;host=192.168.168.198;datasource=ORCL;userid=b;password=b";//return"DataSource=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.168.88)"//+"(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)));UserId=b;Password=b";}}

大家给帮忙看看吧,谢谢了

解决方案

本帖最后由 jiuzaixingdong 于 2012-06-10 17:09:08 编辑
解决方案二:
是不是连接串写的有问题呢
解决方案三:
没有人回答么
解决方案四:
把你的业务处理代码作为一个独立的类库,先单独测试(使用console或者桌面应用等都可以),不要从客户端去测试。特别是,webservice向客户端隐藏了异常机制,难以调试。
解决方案五:
现在本机测试一下是否能够正常连上数据库再在连接数据库的地方打个断点看看里面的值

时间: 2024-11-15 20:13:17

读取局域网内数据服务器,提示ORA-01019错误的相关文章

无法访问局域网内IIS服务器的解决办法

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 今天上午遇到这样的问题: 无法访问局域网内其它电脑中的IIS,以前是可以的,重装了系统就不行了,自己可以访问,但别的电脑不行.看看IIS的IP设置,是192.168.*.*开头的.但为什么不能访问呢? 在网上找了一下解决办法,也没看到类似的回答. 有人说一般发生这种情况时操作系统是XP第二版.于时我就想到了,可能是安全性设置的问题,于时我在控

数据库迁移-局域网内不同服务器之间不同数据库的复制

问题描述 局域网内不同服务器之间不同数据库的复制 有两台服务器,分别装有db2和sysbase数据库,使用局域网内的其他客户机完成两个数据库之间的复制,怎样实现?

局域网 linux 域名-怎么设置域名只能在局域网内访问 服务器是linux

问题描述 怎么设置域名只能在局域网内访问 服务器是linux 各位大神好,小弟想要了解 怎么设置域名只能在局域网内访问 服务器是linux 运用的是 PHP技术,liunx只会点点,请各位指教,谢谢 解决方案 这个你可以在局域网内架设域名服务器,局域网的电脑的网卡都使用你的域名服务器,这样你的域名只在局域网内有效. 基于linux的域名服务器可以用bind 解决方案二: 局域网域名访问服务器

如何在局域网内部署服务器监控 ?

背景 随着互联网的发展,各种网络攻击手段也层出不穷,不管是大型企业还是中小企业,随时都有被攻击的危险,因此很多公司都会采取各种手段来维护自己服务器安全,其中比较常见的是采用内网环境,只设置一台代理服务器,其他服务器都走代理,这样即使遭受攻击对内网环境的服务器影响还是很小的.那这种情况下怎么监控服务器,数据库的性能,有人说有开源软件啊,例如 zabbix nagios 等,但别忘了,使用这2种 监控软件从配置监控开始,到后期一天天的维护,这可是都需要专人来看管的. 那么问题来了,内网环境的数据库监

请教局域网内数据分发的设计

问题描述 局域网内有台服务器从互联网上获取到数据后要分发到同一个段内的其它50台机器上,每次获取到的数据大概有3~5K,服务器每0.1秒就会提交一次数据刷新请求,要求服务器获取到数据后传到每台机器上的时间延时尽可能小,且程序强壮能24小时运行,请问这种情况怎么设计最合理?谁有愿意提供代码帮忙的,急求- 解决方案 本帖最后由 wanghui_777 于 2014-08-14 09:07:11 编辑解决方案二:用TCP长连接客户端TCP长连接到服务器,服务器刷新数据时,向每个连接发数据解决方案三:同

本地电脑如何读取局域网内一台电脑里的EXCEL文件?

问题描述 请问一下,我用自己电脑编程去读取局域网里的一台电脑里的一个EXCEL文件,然后把信息显示在程序界面上.我知道局域网电脑的IP,用户名和密码,但那EXCEL不用文件共享.如何用代码实现读取?非常感谢!!! 解决方案 解决方案二:把这个EXCEL文件设置成ODBC数据源看看解决方案三:或者用FTP?解决方案四:学习解决方案五:关注解决方案六:顶看看ftp协议!!!解决方案七:System.Diagnostics.Process.Start(@"netuse\IP123/user:用户名&q

远程连接局域网内的sql server 无法连接 错误与解决方法_MsSql

第一个错误"SQL Server 不存在或访问被拒绝"通常是最复杂的,错误发生的原因比较多,需要检查的方面也比较多 .一般说来,有以下几种可能性: 1.SQL Server名称或IP地址拼写有误: 2.服务器端网络配置有误: 3.客户端网络配置有误. 要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因. 首先,检查网络物理连接: ping <服务器IP地址> 或者 ping <服务器名称> 如果 ping <服务器IP地址> 失败,说

远程连接局域网内的sql server 无法连接 错误与解决方法

第一个错误"SQL Server 不存在或访问被拒绝"通常是最复杂的,错误发生的原因比较多,需要检查的方面也比较多 .一般说来,有以下几种可能性: 1.SQL Server名称或IP地址拼写有误: 2.服务器端网络配置有误: 3.客户端网络配置有误. 要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因. 首先,检查网络物理连接: ping <服务器IP地址> 或者 ping <服务器名称> 如果 ping <服务器IP地址> 失败,说

[获取当前局域网内所有SQL主机]和[检查本机是否存在SQL服务器]源码!

问题描述 '获取当前局域网内SQL服务器DimmySQLAsSql.SqlDataSourceEnumerator=Sql.SqlDataSourceEnumerator.InstanceForAAsInteger=0TomySQL.GetDataSources.Rows.Count-1listbobox.item.add((mySQL.GetDataSources.Rows(A).Item(0)))Next'检查本机是否存在SQL服务器(接上经过小小的修改就可以了HOHO!!)DimmySQL