2009-07-29 132 views
0

这是非常基本的形式,我在后面的Page.xaml代码中有一个xml的WebClient请求。喜欢的东西:为什么我的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项目必须位于服务器上?

干杯 Ĵ

回答

1

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

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

+0

大声笑...他们抛出然后:)好和清除错误消息。谢谢你的帮助。我想知道他们是如何处理桌面Silverlight应用程序的。 – 2009-07-29 12:03:51

0

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

+0

这确实回答了'为什么'的问题? WebClient是否具有Web服务器的依赖关系? – 2009-07-29 08:46:41

相关问题