代码之家  ›  专栏  ›  技术社区  ›  Robert Fraser

Silverlight跨域:仅在发布模式下的SecurityException

  •  0
  • Robert Fraser  · 技术社区  · 15 年前

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

    如有任何帮助,我们将不胜感激…

    P.S.:它是HTTP(但在端口30588上),请求的是无扩展路径(Web服务返回JSON)。

    1 回复  |  直到 15 年前
        1
  •  2
  •   Robert Fraser    15 年前

    哈哈,我解决了…在发布模式下(但不是在调试模式下),客户端的启动速度比服务器快(在vs中,它们都被设置为“启动项目”)。因此,在服务器启动之前,客户端(Silverlight)正在请求clientaccesspolicy.xml,由于服务器尚未运行,因此找不到主机。这表现为上述安全例外。我添加了一个线程,在客户机中休眠以“修复”它(很明显,hack不会进入任何源代码控制/实际构建)。

    所以要吸取的教训…休斯敦大学。。。Silverlight中的SecurityException需要更详细地说明其原因…?