我有一个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)
答案 0 :(得分:0)
我终于找到了问题所在!
这是一个银色问题:
实际上我在App.xaml.cs“ApplicationLoaded”事件中进行了WCF调用,一旦我收到该方法,我就设置了RootVisual。
看来,当我们处于Out-of-Browser模式时,您无法在RootVisual设置之前进行WCF调用。
现在我正在设置RootVisual,当RootVisual被“加载”时,我正在做我的请求。它有效!