Невозможно установить соединение, потому что целевая машина активно отказалась от него? - PullRequest
217 голосов
/ 04 июня 2010

Иногда я получаю следующую ошибку, когда выполняю HttpWebRequest для WebService. Я тоже скопировал код ниже.


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();

Ответы [ 24 ]

2 голосов
/ 22 июня 2015

Для справки об услуге в решении.

  1. Перезагрузите рабочую станцию ​​

  2. Перестройте свое решение

  3. Обновление справочной службы в проекте WCFclient

В этот момент я получил сообщение (Windows 7), чтобы разрешить доступ к системе. Затем сервисная ссылка была обновлена ​​должным образом без ошибок.

2 голосов
/ 21 марта 2013

Я получил эту ошибку в приложении, которое использует AppFabric. Подсказка получала DataCacheException [1] в трассировке стека. Чтобы узнать, является ли это проблемой для вас, выполните следующую команду PowerShell:

@ («AppFabricCachingService», «RemoteRegistry») | % {get-service $ _}

Если любая из этих двух служб остановлена, вы получите эту ошибку.

[1] http://msdn.microsoft.com/en-us/library/microsoft.applicationserver.caching.datacacheexception.aspx

2 голосов
/ 09 апреля 2014

У меня была такая же ошибка с моей службой WCF, использующей привязку Net TCP, но она была устранена после запуска указанных ниже служб в моем случае.

Net.Pipe.Listener.Adapter

Net.TCP.Listener.Adapter

Служба общего доступа к портам Net.Tcp

2 голосов
/ 16 мая 2016

В моем случае некоторые домены работали, а некоторые нет. Добавление ссылки на прокси-адрес моей организации в мой файл web.config устранило проблему.

<system.net>
    <defaultProxy useDefaultCredentials="true">
      <proxy proxyaddress="http://proxy.my-org.com/" usesystemdefault="True"/>
    </defaultProxy>
</system.net>
1 голос
/ 10 апреля 2017

Еще одна возможность -

Убедитесь, что вы пытаетесь открыть тот же IP-адрес, где вы слушаете. Приложение моего сервера прослушивало IP-адрес хост-машины, используя IPv6, но клиент пытался подключиться по IPv4-адресу хост-машины.

1 голос
/ 11 апреля 2016

В моем сценарии у меня есть два приложения:

  • Приложение 1
  • App2

Предположение : приложение 1 должно прослушивать действия приложения 2 на порте 5000

Ошибка : При запуске App1 и попытке прослушать несуществующий город-призрак выдается ошибка

Решение : Сначала запустите App2, затем попробуйте прослушать, используя App1

0 голосов
/ 10 июля 2018

Существует служба под названием «Обозреватель SQL Server», которая предоставляет клиентам информацию о подключении к SQL Server.

В моем случае ни одно из существующих решений не работало, потому что этот сервис не работал. Я возобновил это, и все вернулось к работе отлично.

0 голосов
/ 01 ноября 2017

С моей стороны это была глупая проблема, я добавил в свой web.config прокси по умолчанию для перехвата трафика в Fiddler, а затем забыл удалить его!

0 голосов
/ 02 октября 2017

Я столкнулся с этой ошибкой и занял некоторое время, чтобы ее исправить. В моем случае https и net.tcp были настроены как привязки IIS к одному порту. Очевидно, вы не можете иметь две вещи на одном порту. Я использовал команду netstat -ap tcp, чтобы проверить, прослушивает ли что-то этот порт. Там не было ни одного слушающего. Удаление ненужной привязки (https в моем случае) решило мою проблему.

0 голосов
/ 08 мая 2016

У меня часто возникала эта проблема. Я обнаружил, что SQL Server Agent служба не работает. Как только я запустил сервис вручную, он был исправлен. Дважды проверьте, работает служба или нет:

  1. Запустите приглашение, введите services.msc и нажмите Enter
  2. Найти имя службы - SQL Server Agent ( Имя экземпляра )

Если SQL Server Agent не запущен, дважды щелкните сервис, чтобы открыть окно свойств. Затем нажмите на кнопку Start. Надеюсь, это кому-нибудь поможет.

...