2009-10-29 79 views
0

所以我使用下面列出的两个xml文件,但没有运气。它们都存在于我的IIS托管的Web服务的根目录中,位于不同的Web服务器上(位于防火墙之后)。 Web服务是一个简单的POX服务,它返回一个JSON字符串。我的Silverlight 3.0中的跨域策略仍然存在问题

此外,我试图从本地机器上的cassini运行项目访问此服务(以测试它)。我可以从浏览器查看JSON,但是当我尝试使用相同的URI(4004是显示的错误代码)执行HTTP GET时,Silverlight中出现安全错误。

任何简单的事情,我错过了吗?

clientaccesspolicy.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> 

的crossdomain.xml

<?xml version="1.0"?> 
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"> 
<cross-domain-policy> 
    <site-control permitted-cross-domain-policies="master-only" /> 
    <allow-access-from domain="*" secure="true" /> 
</cross-domain-policy> 
+0

你的意思是404吗?响应代码4004不存在。 – 2009-10-29 14:03:29

回答

2

您是否正在使用像fiddler这样的工具来查看针对跨域策略文件的请求所指向的地址?这通常是我的第一次检查;如果政策文件没有找到,我会知道它应该在哪里,如果是的话,我通常需要去其他地方看看。

你的clientaccesspolicy.xml和我的参考文献一样。应该没有问题。

+0

我确实激发了提琴手,并且发现我没有auth来访问该服务,所以我启用了匿名访问并且它正在工作!谢谢你的明显答案(使用小提琴家)! – 2009-10-29 14:59:23

0

如果你得到一个404响应代码,唯一的原因可能是服务器无法找到你的资源正在找。那么你是否确定你正在使用正确的网址?

+0

错误不是404,而是显示4004代码的安全错误(如上所示)。我认为这个安全性错误是因为在我将服务推送到另一台服务器之前,因为它正常工作,所以跨域访问。 – 2009-10-29 14:06:12

+0

然后谁在产生错误? Silverlight客户端?你有更详细的错误信息吗? – 2009-10-29 14:13:38