Mono 2.10 под Windows Vista Sp1 HttpWebRequest всегда выдает исключение тайм-аут - PullRequest
0 голосов
/ 03 марта 2011

HttpWebRequest всегда вызывает исключение тайм-аута, а затем запускается в режиме моно 2.10 под Windows Vista SP1 32bit.Тот же запрос успешно завершается, затем запускается под Microsoft .Net на той же машине.Ниже следует код:

string url = "http://maps.googleapis.com/maps/api/geocode/xml?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=false";
try
{
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
    Console.WriteLine(request.GetResponse());
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message);
} 

обновление:

версия моно:

c:\Program Files\Mono-2.10\bin>mono -V
Mono JIT compiler version 2.10 (tarball)
Copyright (C) 2002-2011 Novell, Inc and Contributors. www.mono-project.com
    TLS:           normal
    SIGSEGV:       normal
    Notification:  Thread + polling
    Architecture:  x86
    Disabled:      none
    Misc:          softdebug
    LLVM:          supported, not enabled.
    GC:            Included Boehm (with typed GC and Parallel Mark)

Ответы [ 3 ]

2 голосов
/ 10 февраля 2012

Не уверен, что это будет здесь уместно, но я только что столкнулся с той же проблемой (ну, во всяком случае, с теми же симптомами) и обнаружил, что она была вызвана использованием HttpWebRequest из потока, созданного в собственном коде.(Этот поток позже запустил обратный вызов, который управлял кодом PInvoked.)

Моя проблема была исправлена ​​путем создания рабочего потока в управляемом коде и перетасовывания в него всех использований HttpWebRequest.

У меня естьопубликовал это как моно ошибка

0 голосов
/ 22 июня 2011

В Mono 2.10.2 вызов PayPal Исключение тайм-аута возникает, если используется этот код:

HttpWebRequest objRequest = 
  (HttpWebRequest)WebRequest.Create("https://api-3t.sandbox.paypal.com/nvp");
objRequest.Timeout =15000;
objRequest.Method = "POST";
objRequest.ContentLength = strPost.Length;
using (StreamWriter myWriter = new 
  StreamWriter(objRequest.GetRequestStream()))
            myWriter.Write(strPost);

вызывает исключение в GetRequestStream ():

    System.Net.WebException: The request timed out
      at System.Net.HttpWebRequest.GetRequestStream () [0x0005f] in 
    /usr/src/redhat/BUILD/mono-                2.10.2/mcs/class/System/System.Net/HttpWebRequest.cs:752
      at NVPAPICaller.HttpCall (System.String NvpRequest) [0x00000] in         <filename 
    unknown>:0

    --------------------------------------------------------------------        ------------
    Version information: Mono Runtime Version: 2.10.2 (tarball Mon Apr         18 
    18:57:39 UTC 2011); ASP.NET Version: 2.0.50727.1433

Вам следует перейти на Mono 2.10Первая версия, похоже, что это происходит только в 2.10.2.

0 голосов
/ 04 марта 2011

Я не могу воспроизвести с Mono 2.10 в Windows 7 x64.

c: \ Users \ Владелец \ Development \ monobugs> C: \ Mono-2.10 \ bin \ mono.exe -V Mono JIT-компилятор версии 2.10(tarball) Copyright (C) 2002-2011 Novell, Inc.www.mono-project.com TLS: обычный SIGSEGV: обычный Уведомление: поток + опрос Архитектура: x86 Отключено: нет Разное: softdebug LLVM: поддерживается, не включен.GC: включенный Boehm (с набранным GC и параллельной меткой)

c: \ Users \ Владелец \ Development \ monobugs> C: \ Mono-2.10 \ bin \ mono.exe http.exe System.Net.HttpWebResponse

...