Иногда я получаю следующую ошибку, когда выполняю HttpWebRequest для WebService. Я тоже скопировал свой код ниже.
System.Net.WebException: Невозможно подключиться к удаленному серверу ---> System.Net.Sockets.SocketException: Невозможно установить соединение, поскольку целевая машина активно отказала ему 127.0.0.1:80 в System.Net.Sockets.Socket.DoConnect (EndPoint endPointSnapshot, SocketAddress socketAddress) в System.Net.Sockets.Socket.InternalConnect (EndPoint remoteEP) в System.Net.ServicePoint.ConnectSocketInternal (логическое connectFailure, сокет s4, сокет s6, сокет и сокет, IP-адрес и адрес, состояние ConnectSocketState, IAsyncResult asyncResult, тайм-аут Int32, исключение и исключение) --- Конец внутренней трассировки стека исключений --- в 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();
Ответы:
Если это происходит всегда, это буквально означает, что машина существует, но у нее нет служб, прослушивающих указанный порт, или брандмауэр останавливает вас.
Если это случается время от времени - вы использовали слово «иногда» - и повторная попытка завершается успешно, скорее всего, потому, что сервер имеет полное «отставание».
Когда вы ожидаете, чтобы быть
accept
отредактированным на слушающем сокете, вы попадаете в очередь. Это отставание является конечным и довольно коротким - значения 1, 2 или 3 не являются необычными - и поэтому ОС может быть не в состоянии поставить ваш запрос в очередь на прием для принятия.Отставание является параметром
listen
функции - все языки и платформы имеют в основном один и тот же API в этом отношении, даже C # . Этот параметр часто настраивается, если вы управляете сервером, и, скорее всего, читается из какого-либо файла настроек или реестра. Изучите, как настроить ваш сервер.Если вы написали сервер, у вас может быть тяжелая обработка при принятии вашего сокета, и это может быть лучше перенесено в отдельный рабочий поток, так что ваше принятие всегда готово для получения соединений. Вы можете изучить различные варианты архитектуры, которые уменьшают очереди клиентов и обрабатывают их последовательно.
Независимо от того, можете ли вы увеличить объем невыполненных заданий на сервере, вам потребуется логика повторения в клиентском коде, чтобы справиться с этой проблемой - поскольку даже при длительном отставании сервер может получать множество других запросов на этот порт в это время.
Существует редкая возможность, когда маршрутизатор NAT выдаст эту ошибку, если его порты для сопоставлений будут исчерпаны. Я думаю, что мы можем отбросить эту возможность как слишком большую перспективу, поскольку маршрутизатор имеет 64K одновременных подключений к одному и тому же адресу / порту назначения до исчерпания.
источник
Наиболее вероятная причина - брандмауэр.
Эта статья содержит ряд причин, которые могут быть полезны для вас.
Из статьи возможны следующие причины:
источник
Это тоже случилось со мной .. Иногда, когда я открываю свой проект, появлялась эта ошибка, которая расстраивала. Проблема заключалась в том, что иногда номер порта веб-службы неожиданно менялся.
Эта проблема обычно возникает, когда у вас есть более одной копии проекта
Мой проект вызывал веб-службу с определенным номером порта, который я назначил в файле Web.Config моего основного файла проекта. Поскольку номер порта неожиданно изменился, браузер не смог найти веб-службу и выдал эту ошибку.
Я решил эту проблему, выполнив следующие действия: (Visual Studio 2010)
Я надеюсь, что это решит проблему.
Ура :)
источник
LocalHost:2532
для меня. Оказывается, он был установлен таким образом предыдущим владельцем в указанной вами области. Теперь, когда эта тайна ясна, некоторые другие вещи становятся менее загадочными. Спасибо!Я думаю, вам нужно проверить настройки прокси в "настройках интернета". Если вы используете прокси / приложения Hide IP, эта проблема может возникнуть.
источник
У меня такая же проблема. Проблема в том, что я не запустил сервер селен. Я скачал сервер селена и начал его. После запуска сервера селен проблема исчезла и все работало нормально.
См. Это: http://coding-issues.blogspot.in/2012/11/no-connection-could-be-made-because.html
источник
Зайдите в ваш проект WCF - свойства -> -> отладчики -> снимите флажок
источник
У меня была та же ошибка с моей службой WCF, использующей привязку Net TCP, но она была устранена после запуска перечисленных ниже служб в моем случае.
Net.Pipe.Listener.Adapter
Net.TCP.Listener.Adapter
Net.Tcp Port Sharing Service
источник
Это действительно специфично, но если вы получаете эту ошибку после попытки подключиться к базе данных с помощью mongo, у меня получилось запустить mongod.exe перед запуском mongo.exe, а затем соединение работало нормально. Надеюсь, это кому-нибудь поможет.
источник
Я столкнулся с той же ошибкой, потому что когда ваш Сервер и Клиент работают на одной машине, Клиенту нужен локальный IP-адрес сервера, а не Общедоступный IP-адрес, для связи с сервером вам нужен Общедоступный IP-адрес только в случае, когда Сервер и Клиент работают на отдельной машине, поэтому используйте Локальный IP-адрес В клиентской программе для подключения к серверу Локальный IP-адрес можно найти с помощью этого метода.
источник
Я получил эту ошибку в приложении, которое использует AppFabric. Подсказка была
DataCacheException
в следе стека. Чтобы узнать, является ли это проблемой для вас, выполните следующую команду PowerShell:Если любой из этих двух сервисов остановлен, вы получите эту ошибку.
источник
Что ж, сегодня я впервые получил эту ошибку на 64-битной Windows 8 впервые, и оказалось, что мой my.ini был сброшен, и файл bin / mysqld был удален, среди других элементов в
"Program Files/MySQL/MySQL Server 5.6"
папке.Чтобы это исправить, мне пришлось снова запустить установщик MySQL, установить только сервер и скопировать последнюю версию файла my.ini
"ProgramData/MySQL/MySQL Server 5.6"
, названногоmy_2014-03-28T15-51-20.ini
в моем случае (не знаю, как или почему он был скопирован там недавно) обратно в"Program Files/MySQL/MySQL Server 5.6"
.Единственным изменением в системе с тех пор, как MySQL работал, была установка Traktor 2 от Native Instruments и звуковой карты Traktor Audio 2, которая действительно не должна была вызывать эту проблему, и никто, кроме меня, не использовал эту систему. Если у кого-то есть подсказка, просим вас прокомментировать, чтобы предотвратить это для меня и всех, кто сталкивался с этим.
источник
Для справки в рамках решения.
Перезагрузите вашу рабочую станцию
Восстановите свое решение
В этот момент я получил сообщение (Windows 7), чтобы разрешить доступ к системе. Затем сервисная справка была обновлена корректно без ошибок.
источник
Я хотел бы поделиться этим ответом, который нашел, потому что причиной проблемы был не брандмауэр или процесс, который не слушал правильно, а пример кода, предоставленный Microsoft, который я использовал.
https://msdn.microsoft.com/en-us/library/system.net.sockets.socket%28v=vs.110%29.aspx
Я реализовал эту функцию почти так же, как написано, но случилось то, что я получил эту ошибку:
2016-01-05 12: 00: 48,075 [10] ОШИБКА - ошибка: System.Net.Sockets.SocketException (0x80004005): не удалось установить соединение, поскольку целевая машина активно отказала ему [fe80 :: caa: 745: a1da: e6f1% 11]: 4080
Этот код сказал бы, что сокет подключен, но не под правильным IP-адресом, фактически необходимым для правильной связи. (Предоставлено Microsoft)
Я переписал код, чтобы использовать только первый действующий IP-адрес, который он нашел. Я касаюсь только IPV4, использующего это, но он работает с localhost, 127.0.0.1, и фактически с IP-адресом вашей сетевой карты, где пример, предоставленный Microsoft, не удался!
источник
В моем случае некоторые домены работали, а некоторые нет. Добавление ссылки на URL-адрес прокси-сервера моей организации в файле web.config устранило проблему.
источник
Я получил эту ошибку от служб ссылок, расположенных на WCFHost с моего веб-уровня. То, что сработало для меня, может не относиться ко всем, но я оставляю этот ответ для тех, кому это может. Номер порта для моего WCFHost был случайно обновлен IIS, мне просто пришлось обновить конечные маршруты до ссылок svc в моей веб-конфигурации. Задача решена.
источник
В моем сценарии у меня есть два приложения:
источник
Еще одна возможность -
Убедитесь, что вы пытаетесь открыть тот же IP-адрес, где вы слушаете. Приложение моего сервера прослушивало IP-адрес хост-машины, используя IPv6, но клиент пытался подключиться по IPv4-адресу хост-машины.
источник
В моем случае это было вызвано неправильным развертыванием, где настройка в моем web.config не была сделана.
Коллега объяснил, что IP-адрес в сообщении об ошибке представляет локальный хост.
Когда я исправил файл web.config, я использовал правильный URL для выполнения вызовов сервера, и это сработало.
Я думал, что отправлю это в случае, если это может кому-то помочь.
источник
Используя WampServer 64bit на Windows 7 Home Premium 64bit, я столкнулся с этой проблемой. После нескольких часов экспериментирования стало очевидно, что все, что нужно было в my.ini, чтобы закомментировать одну строку. Тогда все работало нормально.
закомментировал 1 строку сокета = MySQL
Если вы поместите ваши старые / data / files в соответствующее место, WampServer примет их все, кроме папки / mysql /, которую он перезаписывает. Затем я просто импортировал резервную копию данных / mysql / user из предыдущей среды разработки и запустил PRIVILEGES FLUSH в окне phpMyAdmin SQL. Прекрасно работает. Что-то должно быть не так, потому что все не должно быть так просто.
источник
У меня эта проблема случалась часто. Я обнаружил, что
SQL Server Agent
служба не работает. Как только я запустил сервис вручную, он был исправлен. Дважды проверьте, работает служба или нет:services.msc
и нажмите EnterSQL Server Agent
( Имя экземпляра )Если
SQL Server Agent
не работает, дважды щелкните сервис, чтобы открыть окно свойств. Затем нажмите наStart
кнопку. Надеюсь, это кому-нибудь поможет.источник
Я столкнулся с этой ошибкой и занял некоторое время, чтобы решить ее. В моем случае https и net.tcp были настроены как привязки IIS к одному порту. Очевидно, вы не можете иметь две вещи на одном порту. Я использовал команду netstat -ap tcp, чтобы проверить, прослушивает ли что-то этот порт. Там не было ни одного слушающего. Удаление ненужной привязки (https в моем случае) решило мою проблему.
источник
С моей стороны это было глупо, я добавил в свой web.config прокси по умолчанию для перехвата трафика в Fiddler, а потом забыл его удалить!
источник
Существует служба, называемая «Браузер SQL Server», которая предоставляет клиентам информацию о подключении к SQL Server.
В моем случае ни одно из существующих решений не работало, потому что этот сервис не работал. Я возобновил это, и все вернулось к работе отлично.
источник
Я столкнулся с этой проблемой сегодня. Мой был Asp.Net Core API, и он использует
Postgresql
в качестве базы данных. Мы настроили эту базу данных как контейнер Docker. Поэтому первым делом я проверил, могу ли я получить доступ к базе данных или нет. Для этого я искалPgAdmin
в начале, как я настроил то же самое. Нажав на появившееся приложение, вы перейдете на страницу http://127.0.0.1:23722/browser/ . Там вы можете попробовать получить доступ к вашей базе данных в левом меню. Для меня я получил ошибку, как на рисунке ниже.Введите пароль и попробуйте получить доступ к нему или нет. Для меня это не сработало. Поскольку это Docker-контейнер, я решил перезагрузить свой рабочий стол Docker, чтобы сделать это, щелкнуть правой кнопкой мыши на значке Docker на панели задач и нажать перезагрузить.
Однажды после перезапуска Docker я смог войти в систему и увидеть базу данных, а также ошибка исчезла при перезапуске приложения в Visual Studio .
Надеюсь, поможет.
источник
это может быть из-за проблем с авторизацией; это был случай для меня. Если у вас есть, например:
[Authorize("WriteAccess")]
или[Authorize("ReadAccess")]
в верхней части функций вашего контроллера, попробуйте закомментировать их.источник
Для меня я хотел запустить монго в оболочке (независимо от точного контекста вопроса, но с тем же сообщением об ошибке, даже до запуска монго в оболочке)
Процесс 'Служба MongoDB' не был запущен в Службах
Запустите cmd от имени администратора и введите
Просто чтобы убедиться, что MongoDB запущен и работает, просто наберите mongo, в cmd он предоставит сведения о версии Mongo и URL-адрес подключения к Mongo
источник
Я только что столкнулся с этим прямо сейчас ...
Здесь, в конце концов, у меня есть 2 отдельных решения Visual Studio (.sln) ... открытое каждое в своем собственном экземпляре Visual Studio.
Решение 2 вызывает код решения 1. Проблема была связана с портом, назначенным для решения 1. Мне пришлось сменить порт в решении 1 на другой, а затем решение 2 снова начало работать. Поэтому убедитесь, что вы проверите порт, назначенный вашему проекту.
источник