2010-05-26 50 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端口號就沒有意義了。