var targetEndpoint = new DnsEndPoint("subdomain.maindomain.com",443); var clientSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); var @R_404_464@ = new @R_404_464@ {RemoteEndPoint = targetEndpoint}; @R_404[email protected] += AsyncConnectCallback; clientSocket.ConnectAsync(@R_404_464@);
我在https://subdomain.maindomain.com/clientaccesspolicy.xml上有以下clientaccesspolicy.xml文件:
<access-policy> <cross-domain-access> <policy> <allow-from http-request-headers="*" http-methods="*"> <domain uri="https://subdomain.maindomain.com"/> <domain uri="*"/> </allow-from> <grant-to> <resource path="/" include-subpaths="true"/> <socket-resource port="4502" protocol="tcp"/> </grant-to> </policy> </cross-domain-access> </access-policy>
我能够从visual studio运行Silverlight应用程序的本地实例,并且可以建立套接字连接,既可以在浏览器中运行,也可以在浏览器外运行.部署应用程序时,我仍然可以使用浏览器外版本进行连接,但浏览器内版本错误,并显示以下消息:
AccessDenied:尝试以其访问权限禁止的方式访问套接字.
在我从Visual Studio运行的本地环境中,如果我创建了一个hosts文件条目:
127.0.0.1 myapp.local
并更新我的localhost in-browser实例(从VS运行)以使用myapp.local,我可以重现相同的错误,这表明当根域不是localhost时发生错误,无论应用程序托管在何处.
我检查了我的防火墙和防病毒软件的事件日志,看是否有可能阻止连接请求的迹象,但没有看到任何证据.
有没有其他人遇到过这个问题,并提出我的问题的建议?
解决方法
要验证您的应用程序是否以受信任的权限运行,您可以检查属性Application.HasElevatedPermissions是否为true.
另外,请尝试按照本指南How to: Enable Trusted Applications to Run Inside the Browser进行操作
确保服务器的防火墙不阻止“策略服务器”端口943
如果仍然无法连接到服务器,请尝试将服务所在的端口更改为4502到4534范围内的某个端口.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。