gpt4 book ai didi

c# - 整数值在 Web 服务调用中丢失

转载 作者:太空狗 更新时间:2023-10-29 21:46:35 25 4
gpt4 key购买 nike

我有一个应用程序可以调用 Web 服务来获取 MSI 的 URL,具体取决于用户的计算机是 32 位还是 64 位。

调用 GetURLByOS 需要 2 个方法(1.string AuthenticationInfo,2.int osBit)。在调试时,我可以看到身份验证信息。调用 Web 服务时,osBit 的值为 8(对于 64 位)。但是当实际在 web 服务中时,它的值丢失 (0)。

谁能帮我弄清楚为什么整数值丢失了?

更新:我依附于这个过程。在客户端中,我看到传入了值 8。在 Web 服务调用中,我看到了 0。这是一个 SOAP Web 服务调用。这是客户端上的 WSDL 代码:

    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://mydomain.com/product/1.0/GetURLByOs", RequestNamespace = "http://mydomain.com/product/1.0", ResponseNamespace = "http://mydomain/product/1.0", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public string GetURLByOs(string eTicket, int OsBitType)
{
object[] results = this.Invoke("GetURLByOs", new object[] {
eTicket, OsBitType});
return ((string)(results[0]));
}

这是实际的网络服务:

    [WebMethod]
public string GetURLByOs(string eTicket, int osBitType)
{
return MyFacade.GetUrl(eTicket, osBitType);
}

顺便说一句,当我将参数更改为字符串类型时,它会正确传递(值“8”)。只有当我将它作为整数传递时,该值才会被清零。

最佳答案

我发现了问题所在。在(客户端)WSDL 代码中,参数是 OsBitType。但在实际的 web 服务上,参数是 osBitType。将 Web 服务参数更改为 OsBitType 后,它工作正常。

奇怪的是,如果参数是字符串,则不会发生这种情况。

关于c# - 整数值在 Web 服务调用中丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8219012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com