Невозможно установить соединение, потому что целевая машина активно отказалась от него? - 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 ]

0 голосов
/ 28 февраля 2013

Я получил эту ошибку от ссылок на службы, расположенные на WCFHost с моего веб-уровня. То, что сработало для меня, может не относиться ко всем, но я оставляю этот ответ для тех, кому это может. Номер порта для моего WCFHost был случайно обновлен IIS, мне просто пришлось обновить конечные маршруты до ссылок svc в моей веб-конфигурации. Задача решена.

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

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

Коллега объяснил, что IP-адрес в сообщении об ошибке представляет локальный хост.

Когда я исправил файл web.config, я использовал правильный URL для выполнения вызовов сервера, и это сработало.

Я думал, что опубликую это, если это кому-нибудь поможет.

0 голосов
/ 18 июня 2019

Я столкнулся с этой проблемой сегодня. Моим был Asp.Net Core API, и он использует Postgresql в качестве базы данных. Мы настроили эту базу данных как контейнер Docker. Итак, первый шаг, который я сделал, - проверить, могу ли я получить доступ к базе данных или нет. Для этого я искал PgAdmin в начале, так как я настроил то же самое. Нажав на появившееся приложение, вы будете перенаправлены на http://127.0.0.1:23722/browser/.. Там вы можете попробовать получить доступ к вашей базе данных в левом меню. Для меня я получаю сообщение об ошибке, как на изображении ниже.

enter image description here

Введите пароль и попробуйте, можете ли вы получить к нему доступ или нет. Для меня это не сработало. Поскольку это Docker-контейнер, я решил перезапустить свой рабочий стол Docker, чтобы сделать это, щелкнуть правой кнопкой мыши на значке Docker на панели задач и нажать перезагрузить.

Однажды после перезапуска Docker я смог войти в систему и увидеть базу данных, а также ошибка исчезла при перезапуске приложения в Visual Studio .

Надеюсь, это поможет.

0 голосов
/ 19 июня 2013

Использование WampServer 64bit на Windows 7 Home Premium 64bit Я столкнулся именно с этой проблемой. После нескольких часов экспериментирования стало очевидно, что все, что нужно было в my.ini, чтобы закомментировать одну строку. Тогда все работало нормально.

закомментировал 1 строку сокет = MySQL

Если вы поместите ваши старые / data / files в соответствующее место, WampServer примет их все, кроме папки / mysql /, которую он перезаписывает. Затем я просто импортировал резервную копию данных / mysql / user из предыдущей среды разработки и запустил FLUSH PRIVILEGES в окне phpMyAdmin SQL. Работает отлично. Что-то должно быть не так, потому что все не должно быть так просто.

...