我有一个 Silverlight 5 项目,需要从另一个网站加载文本文件。在“其他”网站上,我安装了一个 clientaccesspolicy.xml 文件,该文件具有
<access-policy>
<cross-domain-access>
<policy>
<allow-from>
<domain uri="*" />
</allow-from>
<grant_to>
<resource path=/public_html/services/" include-subpaths="true"
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
该文件位于“其他”网站的根目录下,该网站是一个基于 Linux 的网站。(我也尝试将它放在 public_html 目录中。)
我的代码有这个:
var uri = "http://www.otherwebsite.com/services/TextFile.txt";
var webClient = new WebClient( );
webClient.OpenReadCompleted += ( s, e ) =>
{
using ( var stream = new StreamReader( e.Result ) )
{
// stream processing logic
}
};
webClient.OpenReadAsync( new Uri( uri, UriKind.Absolute ) );
我在“new StreamReader”语句的 OpenReadCompleted 委托中得到了 System.Security.SecurityException。
我可以确认,如果我在浏览器中明确导航到该文件,我可以访问它。我是 Silverlight 的新手,而不是网络专家,所以我可能做错了很多事情。