在它的基本形式中,我在后面的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项目都必须在服务器上?
干杯 Ĵ
答案 0 :(得分:1)
首先,尽量避免使用自动生成的测试页面。它要求您了解当xap作为文件访问时默认模式下的silverlight安全性如何工作。
要回答您的问题,您将遇到旨在防止未经授权的跨域访问的安全措施。
答案 1 :(得分:0)
是的,它没有连接到的网络服务器!自动生成的测试页面只是直接打开XAP而不调用Visual Studio的Web服务器。如果要执行此操作,则必须使用其他选项来创建具有silverlight项目的网站。或者,您可以将XML文件作为资源嵌入XAP中,并将其作为资源进行访问。