为什么我的WebClient请求会根据其托管解决方案的不同而有所不同?

时间:2009-07-29 08:21:39

标签: asp.net silverlight webclient

在它的基本形式中,我在后面的Page.xaml代码中有一些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项目都必须在服务器上?

干杯 Ĵ

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

相关问题