据我所知,为了使Silverlight能够使用WebClient类发出跨域请求,需要在服务器的根目录下有一个clientaccesspolicy.xml。我得到了这个工作,当Silverlight应用程序在调试模式下编译时,这很好用。但是,当在发布模式下编译Silverlight应用程序时,我得到一个SecurityException。甚至更奇怪,似乎Silverlight应用程序甚至没有向(其他域)服务器发出请求 - 它只是抛出异常而不检查!
任何帮助将不胜感激......
P.S。:它是HTTP(但是在端口30588上),请求是针对无扩展路径(Web服务返回JSON)。
答案 0 :(得分:2)
LOL,我解决了......在发布模式下(但没有在Debug中),客户端启动速度比服务器快(它们在VS中都设置为“启动项目”)。因此,客户端(Silverlight)在服务器启动之前请求clientaccesspolicy.xml,并且由于服务器尚未运行,因此无法找到主机。这表现为SecurityException。我在客户端添加了一个Thread.Sleep来“修复”它(说黑客不会进入任何源代码控制/实际构建,显然)。
所以要吸取教训......呃...... Silverlight中的SecurityException需要更详细地说明其原因......?