httpwebrequest BeginGetResponse обратный вызов срабатывает за 60 секунд WP7 - PullRequest
0 голосов
/ 09 сентября 2011

Я пытаюсь извлечь некоторые данные на устройство WP7 с помощью веб-сервиса.

Я использую объект HttpWebRequest для получения данных из моего сервиса ... все хорошо работает на эмуляторе WP7, но когда я пытаюсьЗапустите приложение на устройстве WP7. Обратный вызов BeginGetResponse запускается через 1 минуту / 60 секунд с состоянием ответа «Не найдено».

Но если служба возвращает данные до 60 секунд, она также работает на устройстве WP7 ....

Я создал образец веб-службы с примером метода, в котором Thread.Sleep в течение двух минут работает на эмуляторе WP7, но не работает на устройстве WP7 ....

Кто-нибудь сталкивался с какими-либо проблемами?как это раньше ???

Пожалуйста, помогите мне.

Спасибо, SK

1 Ответ

0 голосов
/ 12 сентября 2011

Я использую приведенный ниже код для запуска службы ... тот же код работает на эмуляторе WP7, но на устройстве WP7 ...

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

        request.ContentType = contentType;
        request.Method = method;

        request.Headers["SOAPAction"] = @"http://tempuri.org/HelloWorldT";
        request.Headers["KeepAlive"] = "true";

        var res = request.BeginGetRequestStream(
           new AsyncCallback((streamResult) =>
           {
               soapRequestEnvelope = @"<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'><s:Body><HelloWorldT xmlns='http://tempuri.org/' xmlns:a='http://schemas.datacontract.org/2004/07/WindowsFormsApplication1.ServiceReference1' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'/></s:Body></s:Envelope>";
               byte[] requestBytes = Encoding.UTF8.GetBytes(soapRequestEnvelope);

               try
               {
                   using (Stream requestStream = request.EndGetRequestStream(streamResult))
                   {
                       requestStream.Write(requestBytes, 0, Encoding.UTF8.GetByteCount(soapRequestEnvelope));
                   }
               }
               catch (Exception e)
               {

               }


               request.BeginGetResponse(new AsyncCallback((ar) =>
               {
                   try
                   {

                       HttpWebRequest Request = (HttpWebRequest)ar.AsyncState;
                       if (Request != null)
                       {

                           using (HttpWebResponse webResponse = (HttpWebResponse)Request.EndGetResponse(ar))
                           {
                               StreamReader reader = new StreamReader(webResponse.GetResponseStream());
                               string text = reader.ReadToEnd();
                           }
                       }
                   }
                   catch (Exception ex)
                   {
                   }

               }), request);


           }), request);
...