2011-03-25 39 views
0

我有一个silverlight应用程序,运行良好。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)

+0

你看过使用提琴手的交通吗?这将告诉你是否在客户端上获得了正确的跨域策略。 – 2011-03-25 12:22:24

+0

事实上,如果我运行它的浏览器,我没有看到这个应用程序在小提琴手的任何流量 – J4N 2011-03-25 12:36:17

+0

你有小提琴手设置为所有流量,对不对?不只是Web浏览器? – 2011-03-25 12:38:30

回答

0

我终于发现问题所在!

这是一个Silverlight的问题:

其实我是做在App.xaml.cs WCF调用“ApplicationLoaded”事件,有一次我收到的方法,我设置我的RootVisual。

而且看来,当我们在超出浏览器模式,你不能让一个WCF调用RootVisual已经设置好的了。

现在我设置RootVisual,当RootVisual是“装”,我做了我的请求。它的工作原理!