SORU
4 HAZİRAN 2010, Cuma


Hiçbir bağlantı hedef makine etkin olarak reddettiğinden olabilir mi?

Bazen bir Java Eklentisi için HttpWebRequest yaparken aşağıdaki hatayı alıyorum. Benim kod aşağıda da kopyaladım.


System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 127.0.0.1:80
   at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
   at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
   --- End of inner exception stack trace ---
   at System.Net.HttpWebRequest.GetRequestStream()

ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy();
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

request.PreAuthenticate = true;
request.Credentials = networkCredential(sla);
request.Method = WebRequestMethods.Http.Post;
request.ContentType = "application/x-www-form-urlencoded";
request.Timeout = v_Timeout * 1000;

if (url.IndexOf("asmx") > 0 && parStartIndex > 0)
{
    AppHelper.Logger.Append("#############"   sla.ServiceName);

    using (StreamWriter reqWriter = new StreamWriter(request.GetRequestStream()))
    {                        
        while (true)
        {
            int index01 = parList.Length;
            int index02 = parList.IndexOf("=");

            if (parList.IndexOf("&") > 0)
                index01 = parList.IndexOf("&");

            string parName = parList.Substring(0, index02);
            string parValue = parList.Substring(index02   1, index01 - index02 - 1);

            reqWriter.Write("{0}={1}", HttpUtility.UrlEncode(parName), HttpUtility.UrlEncode(parValue));

             if (index01 == parList.Length)
                 break;

             reqWriter.Write("&");
             parList = parList.Substring(index01   1);
         }
     }
 }
 else
 {
     request.ContentLength = 0;
 }

 response = (HttpWebResponse)request.GetResponse();

CEVAP
4 HAZİRAN 2010, Cuma


Eğer bu sürekli olursa, o makine var ama hiçbir hizmet belirtilen bağlantı noktası üzerinde dinleme o kelimenin tam anlamıyla anlamına gelir, ya da bir güvenlik duvarı sizi durduran yok.

Eğer ara sıra olan bir şey varsa kelimeyi kullandın "" sunucu tam olduğundan ve başarılı deneniyor, muhtemeldir ''. birikim bazen

Dinleme soketi accepted bekleyen, bir bekleme listesi yerleştirilir. OS talebini 'kabul' tüketmek. sıraya mümkün olabilir bu yüzden bu bekleme listesi sınırlı ve oldukça kısa - 1, 2 veya 3 değerlerini sıradışı değildir ve

Bekleme listesi listen işlevi - tüm dilleri ve platformları temelde bu konuda aynı API var, hatta C# one bir parametredir. Bu parametre, genellikle sunucu kontrolü ve bazı ayarlar dosya veya kayıt defterinden okuma olasılığı varsa yapılandırılabilir. Sunucu yapılandırma araştırın.

Eğer sunucu yazıldı, ağır işleme yuva kabul olabilir, ve bu daha bir ayrı taşındı işçi iş parçacığı, bu yüzden kabul etmek her zaman bağlantıları kabul etmeye hazır olabilir. Müşteriler sıraya ve onları sırayla işleme azaltmak olduğunu keşfetmek, farklı mimari seçenek vardır.

Ne olursa olsunserver birikim artırabilirsiniz olsun, gerekiryeniden denemüvekkilin mantık bu sorun ile başa çıkmak için - sunucu o zaman bu bağlantı noktasında diğer istekleri bir sürü almak olabilir uzun bir bekleme listesi bile kodu.

NAT yönlendirici eşlemeleri için bağlantı noktaları Adres olmalı bu hata verecek nadir bir olasılık var. Uzun zamandır çok fazla yönlendirici gücü tükenmeden önce aynı hedef adres/port aynı anda erişim 64 yana olsa atış, bu ihtimali iptal edebiliriz sanırım.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Chilla Frilla™

    Chilla Frill

    7 Aralık 2006
  • DetroitBORG

    DetroitBORG

    29 Temmuz 2008
  • Djbasilio AuToBaSs

    Djbasilio Au

    20 Aralık 2008