0

我知道 Silverlight 能够使用 WebClient 类发出跨域请求,需要在服务器的根目录中有一个 clientaccesspolicy.xml。我得到了这个工作,当 Silverlight 应用程序在调试模式下编译时,它工作得很好。但是,当 Silverlight 应用程序在发布模式下编译时,我得到一个 SecurityException。更奇怪的是,silverlight 应用程序似乎甚至没有向(其他域)服务器发出请求——它只是在没有检查的情况下抛出异常!

任何帮助,将不胜感激...

PS:它是 HTTP(但在端口 30588 上)并且请求是针对无扩展名的路径(Web 服务返回 JSON)。

4

1 回答 1

2

大声笑,我解决了......在发布模式下(但不是在调试模式下),客户端启动速度比服务器快(它们都被设置为 VS 中的“启动项目”)。因此,客户端 (Silverlight) 在服务器启动之前请求 clientaccesspolicy.xml,并且由于服务器尚未运行,因此无法找到主机。这表现为所说的 SecurityException。我在客户端中添加了一个 Thread.Sleep 来“修复”它(显然,hack 不会进入任何源代码控制/实际构建)。

所以要吸取的教训......呃...... Silverlight中的SecurityException需要更详细地说明它的原因......?

于 2009-09-08T07:47:22.573 回答