【问题标题】:cross-domain policies in silverlight out of browser浏览器之外的 Silverlight 中的跨域策略
【发布时间】:2011-03-29 14:22:24
【问题描述】:

我有一个 Silverlight 应用程序,运行良好。

我正在尝试使用“超出浏览器”,但遇到了几个问题。首先,我无法访问我的服务。

即使在简单的返回“testString”服务调用中,我也会收到“超时异常”。我在本地主机上。

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

我试着把这个

    <?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 服务器,它只有一个“站点”,这个站点有一个“应用程序”,我的应用程序有一个包含服务的文件夹,所以我应该把它放在哪个级别?

非常感谢

编辑:实际上我不知道这是不是这个跨策略问题,或者是因为当它处于浏览器外模式时,它不能使用 Windows 身份验证模式(NTLM)

【问题讨论】:

  • 您是否使用 Fiddler 查看过流量?这将告诉您是否在客户端上获得了正确的跨域策略。
  • 事实上,如果我在浏览器之外运行它,我在 fiddler 中看不到此应用的任何流量
  • 您已将 Fiddler 设置为所有流量,对吗?不仅仅是网络浏览器?
  • 如果看不到流量,肯定有问题。我刚刚测试并将 Fiddler 设置为所有进程让我看到 OOB 流量。
  • 等等。这是本地主机?您是否将服务电话设置为ipv4.fiddler:<port>?

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


【解决方案1】:

我终于找到问题所在了!

这是一个银光问题:

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

看起来,当我们处于浏览器外模式时,您无法在设置 RootVisual 之前进行 WCF 调用。

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

【讨论】:

    猜你喜欢
    • 2010-09-09
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    • 2010-11-29
    • 2021-02-21
    • 2010-12-11
    • 2011-02-20
    相关资源
    最近更新 更多