none
webservice发布有问题 RRS feed

  • 问题

  • 我昨天做的一个webservice 发布时出现了问题,我在地址栏中输入webservice地址打开时在采集数据的textbox中输入目标的一段字符串提交后他可以正确分析字符串并能将结果存入数据库中。
    可是当我把它通过代理绑定到一个应用程序时它便不能工作了,我设置断点调试后发现代理绑定像是没有什么问题只是执行服务方法时便直接就过去了似乎什么也没有做,根本就没有过这个方法。
    如果哪位朋友知道是什么原因,请点拨一下我这个菜鸟。
    2009年4月29日 11:52

答案

  • 问题应该算是解决了。
    因为postdata 是对象类型 它必须经过一个将object串行化->byte[]->string的过程
    以下 string str = System.Text.Encoding.ASCII .GetString(object as byte[])  这种转换方式行不通。
    谢谢 X.X.Y 的关注。
    • 已标记为答案 洞中人 2009年5月1日 2:19
    2009年5月1日 2:18

全部回复

  • 你好,你可以把你的的具体代码帖出来看看
    知识改变命运,奋斗成就人生!
    2009年4月30日 12:00
    版主
  • 谢谢 X.X.Y
    我也是刚刚发现问题大概是这样的,
    我在浏览器中截取了一段 object 类型的字符串postdata;
    然后将他通过string str = System.Text.Encoding.ASCII .GetString(object as byte[]) 转换成字符串;
     localhost.XCService xcs = new App.localhost.XCService();
      xcs.DataSave(str);
    在以上这个过程中经调试好象是在 System.Text.Encoding.ASCII .GetString(object as byte[])中出了问题;
    如果将得到的str 保存到剪贴板中通过在IE地址栏中直接调用这个webservice的DataSave()方法,再将剪贴板中的
    数据粘贴进输入参数中则能正确调用。
    但是经绑定后用xcs.DataSave(str)调用则无反应,据信应该是System.Text.Encoding.ASCII .GetString(object as byte[]) 造成的
    因为 xcs.DataSave("helloword")就能成功;
    令人百思不得其解的是,为什么同样数据经剪贴板粘贴到(通过在IE地址栏中直接调用这个webservice的DataSave()方法)输入框中时无问题。
    不解不解呀!

    2009年4月30日 14:26
  • 你可以把 str 打出来看看,是不是太长了。
    知识改变命运,奋斗成就人生!
    2009年4月30日 16:50
    版主
  • 如果太长的话为什么从剪贴板直接复制到输入textbox中调用就没问题呢?
    2009年5月1日 0:39
  • 问题应该算是解决了。
    因为postdata 是对象类型 它必须经过一个将object串行化->byte[]->string的过程
    以下 string str = System.Text.Encoding.ASCII .GetString(object as byte[])  这种转换方式行不通。
    谢谢 X.X.Y 的关注。
    • 已标记为答案 洞中人 2009年5月1日 2:19
    2009年5月1日 2:18