浏览器中的Silverlight中的跨域策略

时间:2011-03-25 12:14:36

标签: .net silverlight cross-domain out-of-browser

我有一个Silverlight应用程序,运行正常。

我正在尝试使用“Out of browser”,我遇到了几个问题。首先,我无法访问我的服务。

我收到一个“超时异常”,即使是简单的返回“testString”服务调用。我在localhost。

所以我认为跨域策略可能存在问题。

我试着把这个

    <?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
        <allow-access-from domain="*" />
</cross-domain-policy>

在crossdomain.xml文件中

我也尝试过这个:

    <?xml version="1.0" encoding="utf-8"?>
<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="*">
        <domain uri="*"/>
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

但是没办法,我仍然得到一个TimeOut异常,而在服务器端,我的断点还没有到达。

那我可能做错了什么?

我应该把这些文件放在哪里?

因为我有一个本地IIS服务器,它只有一个“站点”,所以这个站点有一个“应用程序”,而我的应用程序有一个包含服务的文件夹,所以我应该把它放在哪个级别?

非常感谢

编辑:事实上我不知道这是否是这个交叉策略问题,或者是否是因为当它处于Out of Browser模式时,它无法使用Windows身份验证模式(NTLM)

1 个答案:

答案 0 :(得分:0)

我终于找到了问题所在!

这是一个银色问题:

实际上我在App.xaml.cs“ApplicationLoaded”事件中进行了WCF调用,一旦我收到该方法,我就设置了RootVisual。

看来,当我们处于Out-of-Browser模式时,您无法在RootVisual设置之前进行WCF调用。

现在我正在设置RootVisual,当RootVisual被“加载”时,我正在做我的请求。它有效!