【问题标题】:How to solve a crossdomain policy security exception in C#如何在 C# 中解决跨域策略安全异常
【发布时间】:2011-09-30 19:10:32
【问题描述】:

我一直在尝试创建 C# IRC 客户端,一切正常,当连接到某些网络时,它会引发如下套接字策略异常:

System.Security.SecurityException:无法连接,因为无效 跨域策略位于 System.Net.Sockets.Socket.Connect_internal(IntPtr 袜子, System.Net.SocketAddress sa,System.Int32& 错误,布尔值 requireSocketPolicyFile) [0x00000] in :0 at System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP, Boolean requireSocketPolicy) [0x00000] in :0 at System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP) [0x00000] 在 :0 处 System.Net.Sockets.TcpClient.Connect (System.Net.IPEndPoint remote_end_point) [0x00000] in :0 at system.Net.Sockets.TcpClient.Connect (System.Net.IPAddress[] ipAddresses,Int32 端口)[0x00000] in :0

这是我用来连接的代码:

//connect the client
client = new TcpClient(serverAddress, serverPort);

当它尝试连接到大多数 IRC 服务器时,它会抛出该异常,但对于某些它不会,因为您可能意识到我需要客户端连接到任何允许它的 irc 服务器。

我曾尝试在 Google 上搜索解决方案,但得到的只是 Silverlight 异常,我没有使用 Silverlight。我已经尝试解决这个问题一周了,但没有运气,我已经编程了 8 年,而且我非常擅长解决问题,但这超出了我的能力范围,因此不胜感激。

问候,艾米。

【问题讨论】:

  • Server如何提供连接?您是否使用了可能不允许访问网络资源的 AppDomains?
  • 您的代码在哪里运行?这是桌面应用程序(控制台/WinForms/WPF)、浏览器内富客户端应用程序(Silverlight)、服务器应用程序(ASP.NET/其他)吗?
  • 我已经说过它不是 Silverlight,它在桌面上使用 C# .NET,但它也可以在浏览器中运行,不过我在桌面和浏览器上都遇到了同样的问题。和关于服务器的 idk,因为我没有制作服务器,我只连接到它。我知道协议,所以我可以让客户端适当地响应我所做的消息。

标签: c# .net sockets exception policy


【解决方案1】:

您是否尝试过以管理员身份运行程序集?如果可行,那么这是一个安全问题,您需要指定程序所需的权限。因此,如果“以管理员身份运行”有效,请检查:http://msdn.microsoft.com/en-us/library/system.net.socketpermissionattribute%28v=VS.110%29.aspx

【讨论】:

    猜你喜欢
    • 2011-11-26
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    • 2011-02-20
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    • 2010-09-09
    相关资源
    最近更新 更多