我有一个需要从其他网站加载文本文件的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的新手,而不是网络大师,所以我可能会做很多错事。
答案 0 :(得分:0)
答案在上面的jv42评论中:C#代码没有任何问题,但是grant-to的资源路径值具有非常具体的路径/ public_html / services /,但它只需要/ services /,并且xml文件本身必须位于/ public_html目录中。