2010-05-26 54 views
1

我想一个Silverlight客户端连接到一个套接字服务器,并继续得到以下错误:Silverlight的插座

An attempt was made to access a socket in a way forbidden by its access permissions.

我相信我需要通过任一插座服务器或HTTP指定clientaccesspolicy.xml ://:80/clientaccesspolicy.xml具有以下选项集的路径

args.SocketClientAccessPolicyProtocol = SocketClientAccessPolicyProtocol.Http 

我无法使其运行。有什么建议么?

回答

1

Au contraire,socket在Silverlight中得到了很大的支持。我碰到并克服了某些限制。端口4502-4534是您可以连接的唯一端口,您需要通过另一台套接字服务器在端口943上连接的同一台机器上提供clientaccesspolicy.xml。

我的解决方案: 添加了专用套接字服务器在服务器上,露出下面的clientaccesspolicy.xml当客户端连接:

<?xml version="1.0" encoding="utf-8"?> 
<access-policy> 
    <cross-domain-access> 
    <policy> 
     <allow-from http-request-headers="*"> 
     <domain uri="*" /> 
     </allow-from> 
     <grant-to> 
     <socket-resource port="4502-4534" protocol="tcp" /> 
     </grant-to> 
    </policy> 
    </cross-domain-access> 
</access-policy> 
+0

你不需要因为Silverlight 4的“通过另一个套接字服务器要连接到端口943在同一台机器上提供clientaccesspolicy.xml” ,通过指定SocketClientAccessPolicyProtocol.Http,你将拥有它从网站主机 – markmnl 2012-05-21 00:43:48

0

你不行。如果您不想绕过这些限制,那么限制浏览器中的TCP端口号就没有意义了。