Silverlight WCF 返回HTTP 404错误
原文地址:http://blogs.microsoft.co.il/blogs/bursteg/archive/2008/07/19/Silverlight-WCF-HTTP-404.aspx
今天我遇到了很奇怪的事。我创建了一个WCF服务并且用简单的.Net客户端程序测试时,运行正常。然后我创建了一个Silverlight程序并尝试着调用同一个服务,但是总是得到如下消息:System.ServiceModel.ProtocolException: "The remote server returned an unexpected response: (404) Not Found."
我只检查出由于WCF调用的是一个跟我的Silverlight程序(或者与本地开发机器上不同的端口)不在同一个域下的服务。这种情况导致了交叉的域调用,然后Silverlight请求运行该WCF服务的域允许它的这种调用。可以通过放一个名为clientaccesspolicy.xml的文件到该域的根目录下面解决此问题。
所以,为了让你的Silverlight能够成功调用一个WCF服务而不是得到HTTP 404的返回错误,你应该把clientaccesspolicy.xml放到c:"inetpub"wwwroot".
此文件的内容为:
<?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>
当然了,你应该根据你自己的配置来设定它。
以上这些就是解决Silverlight程序调用WCF时返回HTTP 404错误的方法!
希望你喜欢!