Целочисленное значение теряется при вызове веб-службы

У меня есть приложение, которое выполняет вызов веб-службы для получения URL MSI в зависимости от того, является ли компьютер пользователя 32-разрядным или 64-разрядным.

Вызов GetURLByOS принимает 2 метода (1. string AuthenticationInfo , 2. int osBit). В процессе отладки я вижу информацию об аутентификации. При вызове веб-сервиса значение osBit равно 8 (для 64bit). Но его значение теряется (0), когда он находится в веб-сервисе.

Может ли кто-нибудь помочь мне выяснить, почему целочисленное значение теряется?

Обновление: Я присоединяюсь к процессу. В клиенте я вижу, что передается значение 8. В вызове веб-службы я вижу 0. Это вызов веб-службы SOAP. Вот код 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);
        }

BTW, когда я меняю параметр на тип string, он передается правильно (значение "8"). Только когда я передаю его как целое число, значение обнуляется.

6
задан John Saunders 6 December 2011 в 04:44
поделиться