0

我有一个 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 的新手,而不是网络专家,所以我可能做错了很多事情。

4

1 回答 1

0

答案在上面 jv42 的评论中:C# 代码没有任何问题,但是 grant-to 的资源路径值具有非常具体的路径 /public_html/services/,但它只需要 /services/ 和 xml文件本身必须在 /public_html 目录中。

于 2012-09-05T16:14:49.050 回答