winform 访问webservice问题,跪求高人指点

qls_0 2013-08-08 01:48:21
碰到一个很奇葩的问题。在winform中调用webservice来访问数据库。代码在很多电脑上运行都是正常的,但是今天碰到一个网络管理得比较严格的公司,在运行程序的时候就出现了错误:
代码段1:actws.Service ws = new actsms.actws.Service();
string aa = ws.WS_01(str1,str2);这段能够正常执行

代码段2:actws.Service ws = new actsms.actws.Service();
string sqltext = "select * from [tab1] where id =‘1’";
DataTable tmpdb = ws.WS_03(sqltext);这段执行就会报错。

不同的地方就是代码1中是webservice中的方法ws_01里面运行sql语句,代码2中是把sql语句作为一个字符串参数传递给ws_03来执行,然后到这里就异常了。

怀疑对方的网络可以限制对webservice进行传递sql语句字符串的操作,ws_01和ws_03的参数类型都是string,有没有大神知道怎么解决这个问题啊,如果是网络管理方面进行了限制,是通过什么手段限制的,可不可以绕过去。。。急求~~~~~~
...全文
264 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qls_0 2013-08-08
  • 打赏
  • 举报
回复
不好意思,自己犯了个错误
qls_0 2013-08-08
  • 打赏
  • 举报
回复
楼上的大神在不。 转码好像有问题,Encoding myEncoding = Encoding.GetEncoding("UTF-8"); byte[] outputb = Convert.FromBase64String(str1); string orgStr = Encoding.UTF8.GetString(outputb);转出来的orgstr内容是正常的,但是同样在webservice里面把orgStr作为参数传给ws_03(orgStr)的时候直接报错无效的 SQL语句;期待 'DELETE'、'INSERT'、'PROCEDURE'、'SELECT'、或 'UPDATE'。但是直接传递转码前的string就能正常执行,这个是怎么回事呢,orgStr和转换前的内容是一致的,是不是格式还有不一致的地方??
qls_0 2013-08-08
  • 打赏
  • 举报
回复
非常感谢,我先试一下
机器人 2013-08-08
  • 打赏
  • 举报
回复
编码: byte[] bytes=Encoding.UTF8.GetBytes("要转换的字符串"); Convert.ToBase64String(bytes); 解码: //"ztKwrsTj"是“我爱你”的base64编码 byte[] outputb = Convert.FromBase64String("ztKwrsTj"); string orgStr = Encoding.UTF8.GetString(outputb);
qls_0 2013-08-08
  • 打赏
  • 举报
回复
没办法,只是个临时性的过渡方式.对webservice也不太熟悉,base64在服务端怎么做decode啊,另外进行base64编码以后碰到中文会不会出其他的错误?
机器人 2013-08-08
  • 打赏
  • 举报
回复
这么就把数据库暴露在http上,也的确很奇葩。 绕过去的方式就是对string进行编码,比如base64,当然服务端也需要添加decode的处理

12,163

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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