如何修复System.Net.Sockets.SocketException

时间:2012-12-24 12:02:59

标签: asp.net-mvc windows-server-2008

我正在开发一个ASP.NET MVC网站,它已经安装在三个不同的服务器上(相同的代码版本),它可以在两个服务器上工作,即用户可以登录,但是在用户之后的一个服务器上已提交用户名和密码,浏览器中显示以下服务器错误:

Security Exception

System.Security.SecurityException: Token not found

发生错误的环境的事件查看器在用户尝试登录时显示以下两条错误消息:

Could not init pool.
System.Net.Sockets.SocketException (0x80004005): 
A connection attempt failed because the connected party did not properly
respond after a period of time, or established connection failed because 
connected host has failed to respond (server ip address)

这个错误:

Error: System.Security.SecurityException: Token not found

浏览器中显示的服务器错误是哪个。这在过去通过删除身份验证cookie得到了解决,但这不适用于此错误。

我已经尝试将web.config中的信任级别设置为full,但这不起作用。我试过重启IIS。

有没有其他人遇到类似的问题?可能是因为某种服务没有运行而导致此问题?任何建议将不胜感激。

3 个答案:

答案 0 :(得分:5)

大多数情况下,由于尝试通信的两台服务器/计算机之间的IP协议(IPV4 / IPV6)不同,或者在其中一台计算机上设置额外的身份验证规则以进行传出或传入连接,这些都是连接超时。 解决问题的方法:

  1. 查看IIS日志
  2. 查看EventLogs
  3. 尝试调整注册表中的TCP / IP参数以增加连接时间
  4. http://msdn.microsoft.com/en-us/library/aa560610(d=printer,v=bts.20).aspx

    尽管上面的文章引用了Windows 2003,但我发现它适用于某些2008环境。

答案 1 :(得分:0)

我得到的是0x80004005&请求的名称有效,但未找到所请求类型的数据。 My complete error

检查您的机器上是否有正确的互联网连接。并且您可以ping远程服务器。我通过检查两个来解决。

答案 2 :(得分:0)

当服务器(Azure)上托管的第三方API之一无法与另一台计算机(iNetU)上的我们的Web服务进行通信时,我们收到此错误。可以选择打开端口,以便这些计算机可以通话或将Web服务移至托管第三方API的计算机。