尝试以其访问权限禁止的方式访问套接字

时间:2011-01-25 22:36:34

标签: c# facebook-c#-sdk

我刚刚下载了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用户ID等)。

我正在使用本地开发地址http://myappdev.local(在hosts文件中设置为127.0.0.1)。在我的Facebook应用设置中设置了相同的地址,也是域myappdev.local - 这可能是问题吗?我在一些教程中看到了使用localhost:1234的示例。

7 个答案:

答案 0 :(得分:19)

解决......我的坏 - 我的防火墙“默默地”阻止IIS工作进程连接端口443 ......我希望至少我能从同样的错误中拯救某人:)

答案 1 :(得分:19)

如果您在Windows 8开发中遇到同样的错误,可能是因为您未在Package.appxmanifest文件中通过专用网络启用访问权限:

Highlighting the Private Networks (Client & Server) option

答案 2 :(得分:8)

我知道这篇文章来自2011年,但它仍然是谷歌搜索匹配其标题逐字的第一个结果,这恰好是确切的错误代码;)。任何人,我以为我会为其他有错误的人加上我的两分钱,因为我的解决方案类似但不同。

问题也在我身边。我使用smtp客户端发送邮件。我运行PeerBlock,它阻止了可疑的IP。我看到它阻止了我离开网络之前发送的IP之一。一个简单的规则例外,问题就解决了。

TL; DR 应检查所有防火墙和其他互联网安全过滤工具,以确保不会导致此问题。

答案 3 :(得分:2)

当我尝试运行一个简单的http Web应用程序,在Windows 10 Home上用Go(golang)编写的端口80时,我遇到了类似的问题。

经过一些研究后,我发现由于某些原因,“万维网发布服务”(W3SVC)正在运行。停止和禁用该服务解决了我的问题。

我从未使用过这项服务。我想过去安装的Visual Studio Community 2013安装并启用了此服务。当我第一次遇到这个问题时,我认为这是一个特权问题,因为Linux系统上的应用程序正在侦听端口<必须以root权限运行1023。但在Windows 1023中并非如此。

毕竟,找到这个微不足道的问题花了我大约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)在Taskmanager的Details选项卡上查找Process#4。

这表明涉及系统(NT Kernel& System)。

4)尝试使用带有Telnet到端口80的PUttY访问localhost上的端口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”(在我的德语电脑上),它代表英语系统上的“万维网发布服务”语言设定。我停止了服务 - 瞧!这是问题的原因。

答案 4 :(得分:2)

不确定这是什么,但是ipconfig /release && ipconfig /renew似乎对我有用。

答案 5 :(得分:1)

面对类似的问题,我检查了可能导致错误的一切,这包括正确的端口使用,防火墙设置甚至操作系统的服务器兼容性问题,只是发现反病毒是造成这种情况的原因之一它,

确保禁用阻止套接字连接的防病毒功能,或者添加免除特定的.exe或程序,以免被blcocked。

Mine使用McCafee,我取消选中阻止套接字连接发送邮件的功能,并且它有效。

答案 6 :(得分:0)

我在本地运行MySQL数据库,我遇到了类似的问题。我完成了与同一问题相关的帖子中显示的所有步骤:

  • 已禁用防火墙
  • 已禁用防病毒软件
  • 重置TCP / IP堆栈
  • 重新启动的计算机
  • 已验证的连接字符串

这些都没有奏效。我发现对我来说问题是我的VPN(Astrill)。由于某种原因,它导致这些localhost连接失败。断开与VPN的连接解决了我的问题。