0

在它的非常基本的形式中,我在后面的 Page.xaml 代码中有一些 xml 的 WebClient 请求。就像是:

    public Page()
    {
        InitializeComponent();

        Uri uri = new Uri("Dummy.xml", UriKind.Relative);

        WebClient webClient = new WebClient();
        webClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(webClient_DownloadStringCompleted);
        webClient.DownloadStringAsync(uri);
    }

    void webClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        if (e.Error == null)
        {
            //Do something
        }
    }

如果我将我的 Silverlight 项目设置为通过 asp.net 托管页面运行,然后将 Dummy.xml 放入 ClientBin 文件夹(相对于 xap),它工作正常。

如果我只使用自动生成的测试页选项设置项目,并再次将 xml 与 xap 相关,则请求不起作用(尽管完成的事件确实会触发)。

我的问题是为什么?是否要求任何动态下载的 Silverlight 项目都必须在服务器上?

干杯J

4

2 回答 2

1

首先,尽量避免使用自动生成的测试页面。它要求您了解在将 xap 作为文件访问时默认模型的 silverlight 安全性如何工作。

为了回答您的问题,您遇到了旨在防止未经授权的跨域访问的安全措施。

于 2009-07-29T11:52:57.650 回答
0

是的,它没有可连接的网络服务器!自动生成的测试页面只是直接打开 XAP,而不调用 Visual Studio 的 Web 服务器。如果你想这样做,你必须使用另一个选项来创建一个带有 silverlight 项目的网站。或者,您可以将 XML 文件作为资源嵌入 XAP 中,并将其作为资源进行访问。

于 2009-07-29T08:40:06.980 回答