代码之家  ›  专栏  ›  技术社区  ›  cori

asmx webservice删除传入参数

  •  0
  • cori  · 技术社区  · 15 年前

    我需要一些帮助来解决ASP.NET 2 ASMX WebService的问题,该服务似乎忽略了传入的参数。

    我有一个asmx服务,它接受一个字符串,使用一个SAP API做一些工作,并以字符串的形式返回操作的结果。它在开发环境中工作正常,但在生产环境中失败,因为它似乎没有接收到传入的参数。

    下面是一个具有代表性的代码片段:

    在消费代码中,“textIdentifier”是传递给调用Web服务的方法的字符串。

    SAPProxyWebService.SAPProxyWebService webservice = new SAPProxyWebService.SAPProxyWebService();
    return webservice.GetEncodedText( TextIdentifier );
    

    web方法声明如下:

    [WebMethod()]
    public string GetEncodedText(string TextIDString)
    {
       do some stuff with TextIDString;
       return results;
    }
    

    当我在调用web方法的方法中记录textIdentifier的值时,我得到了期望的值。实际上,当我将它记录在与Web方法调用相同的行上时,我看到了预期的输入。

    但是,当我在webmethod中记录textidstring参数时,在任何其他操作之前,它是空的。当我硬编码web方法中的一个特定值时,我得到了硬编码值的结果。

    我应该寻找什么会导致Web方法“丢失”传入参数?

    2 回复  |  直到 11 年前
        1
  •  1
  •   Aryabhatta    15 年前

    你试过用吗 Fiddler 是吗?您应该能够查看在客户机和服务器之间发生的SOAP/任何数据包。

        2
  •  0
  •   cori    15 年前

    因此,我不确定根本原因是什么,也不确定修复的哪些方面实际解决了这个问题,但最终我所做的工作是将Web服务部署到不同的位置,并将客户端库指向那里。我通过我们的开发/测试体系结构部署了报告(包括客户机库),一切都运行良好。然后,我将WebService部署回它的原始位置,然后报表和库通过体系结构向上,报表在它的原始位置与Web服务一起工作。

    我怀疑客户机库/报表可能使用了服务定义的缓存版本。没有意义的是,当我修改服务以记录所发生的事情时,引发异常的代码中的位置(空引用异常)将移动,并且报告将反映正在执行相同语句的代码中的新位置(即行号)。