Была предпринята попытка получить доступ к сокету способом, запрещенным его правами доступа. - PullRequest
11 голосов
/ 26 января 2011

Я только что скачал C # SDK и пример ASP.NET MVC, изменил его для работы с 4.2.1.(web config facebookSettings параметры и т. д.), создал мое приложение Facebook и попытался запустить его.Нажмите кнопку входа в Facebook - хорошо, ввод учетных данных во всплывающем окне Facebook - хорошо, разрешите доступ для моего приложения - хорошо, а затем я получаю эту ошибку:

System.Net.Sockets.SocketException: попыткабыл сделан для доступа к сокету способом, запрещенным его правами доступа 66.220.146.47:443

var app = new FacebookApp();
if (app.Session == null)
{
   // The user isnt logged in to Facebook
   // send them to the home page
   return RedirectToAction("Index");
}

// Get the user info from the Graph API
dynamic me = app.Api("/me"); // EXCEPTION THROWN HERE
ViewData["FirstName"] = me.first_name;
ViewData["LastName"] = me.last_name;

Мне кажется, что объект app в порядке (содержит параметры настройки, объект сеанса с токеном доступа)и мой идентификатор пользователя в Facebook и т. д.)

Я использую локальный адрес разработки http://myappdev.local (в файле hosts установлен 127.0.0.1).Этот же адрес установлен в настройках приложения на Facebook, а также в домене myappdev.local - Может ли это быть проблемой?Я видел примеры использования localhost:1234 в некоторых уроках.

Ответы [ 6 ]

19 голосов
/ 17 декабря 2013

Если вы получаете ту же ошибку при разработке Windows 8, возможно, вы не включили доступ через частные сети в файле Package.appxmanifest:

Highlighting the Private Networks (Client & Server) option

19 голосов
/ 02 февраля 2011

Решено ... мой плохой - мой брандмауэр "молча" блокировал подключение рабочего процесса МКС к порту 443 ... Я надеюсь, что, по крайней мере, я спасу кого-то от той же ошибки:)

8 голосов
/ 02 сентября 2013

Я знаю, что это сообщение за 2011 год, но оно все еще является первым результатом поиска в Google, совпадающим с его заголовком дословно, что является точным кодом ошибки;).В любом случае, я решил добавить свои два цента для тех, у кого есть ошибка, поскольку мое разрешение было похожим, но другим.

Проблема была и на моем конце.Я использовал SMTP-клиент для отправки почты, хотя.Я запускаю PeerBlock, и он блокирует подозрительные IP-адреса.Я видел, что он блокирует один из IP-адресов, которые я отправлял, прежде чем он покинул мою сеть.Простое исключение из правила, и проблема была решена.

TL; DR Брандмауэры и другие инструменты фильтрации интернет-безопасности должны быть проверены, чтобы убедиться, что эта проблема не возникает с вашей стороны.

3 голосов
/ 05 октября 2017

Я сталкивался с подобной проблемой, когда пытался запустить простое веб-приложение http, прослушивающее порт 80, написанный на Go (golang) в Windows 10 Home.

Проведя некоторые исследования, я обнаружил, что по каким-то причинам работает «Служба публикации в Интернете» (W3SVC). Остановка и отключение службы решили мою проблему.

Я никогда не пользовался этим сервисом. Я предполагаю, что установка Visual Studio Community 2013 в прошлом установила и включила эту службу. Когда я впервые столкнулся с проблемой, я подумал, что это проблема привилегий, так как это имеет место в системах Linux, где приложения, прослушивающие порты <1023, должны запускаться с привилегиями root. Но в Windows 1023 это не так. </p>

В конце концов, нахождение этой тривиальной проблемы стоило мне около 2 часов, поэтому я отправляю этот ответ в эту довольно старую ветку.

В основном это краткое изложение того, что я сделал:

1) Google для сообщения об ошибке (как полностью содержится в вопросе этой темы).
- Ко многим вопросам, не связанным с моими конкретными вопросами, были возвращены. - Я не нашел конкретного ответа, который решил бы мою проблему.
- Однако я нашел подсказки для дальнейшего анализа.

2) Первым намеком было использование netstat.

netstat -o -n -a | findstr 0.0.0.0:80
netstat -o -n -a | findstr 127.0.0.1:80

Оказалось, что процесс с Id 4 прослушивал порт 80.

3) Процесс поиска # 4 на вкладке Сведения в диспетчере задач.

Это показало, что система (NT Kernel & System) задействована.

4) Попытка получить доступ к порту 80 на локальном хосте, используя PUttY с Telnet к порту 80.
(не забудьте установить ** Закрытие при выходе * на никогда )

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request - Invalid Verb</h2>
<hr><p>HTTP Error 400. The request verb is invalid.</p>
</BODY></HTML>
HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Thu, 05 Oct 2017 13:13:29 GMT
Connection: close
Content-Length: 326

5) Собранная до сих пор информация не давала конкретной подсказки, но позволяла мне выполнять более конкретные поиски в Google. Теперь информация, полученная от Google, показала, что источником проблемы, скорее всего, могут быть какие-то системные службы, прослушивающие порт 80.

6) Теперь было легко искать такие запущенные сервисы в диспетчере сервисов. Первым, что я обнаружил, который, вероятно, мог быть источником проблемы (поскольку он содержал WWW в своем названии), было «WWW-Publishingdienst» (на моем компьютере на немецком языке), что расшифровывается как «World Wide Web Publishing Service» в системах с английским языковые настройки. Я остановил службу и - Вуаля! Это было причиной проблемы.

1 голос
/ 27 мая 2015

столкнулся с подобной проблемой, я проверил все, что может вызвать ошибку, в том числе правильный порт для использования, настройки брандмауэра, даже проблемы с совместимостью операционной системы сервера, только чтобы выяснить, что антивирус является причиной это,

Обязательно отключите функцию своего антивируса, которая блокирует подключение к сокету, или добавьте в качестве исключения конкретный .exe или программу, которую вы не хотите использовать для блокировки.

Мой использует McCafee, и я отключаю функцию, которая блокирует сокетное соединение для отправки почты, и это сработало.

0 голосов
/ 01 февраля 2017

Я запускаю MySQL DB локально, и у меня была похожая проблема.Я сделал все шаги, показанные в сообщениях, связанных с той же проблемой:

  • Отключенный брандмауэр
  • Отключенный антивирус
  • Сброс стека TCP / IP
  • Перезагрузка компьютера
  • Проверенная строка подключения

Ничего из этого не помогло.Я узнал, что проблемой для меня был мой VPN (Astrill).По какой-то причине это вызывало сбой этих локальных соединений.Отключение от VPN решило мою проблему.

...