无法从silverlight应用程序使用WCF服务

时间:2011-03-01 11:20:34

标签: wcf

我写了一些包含一个方法的WCF服务。 该方法不会获得任何参数 - 但返回字符串。

尝试通过silverlight应用程序调用此服务 - 我对“跨域访问策略”有例外。

我google它,我发现我需要将'clientaccesspolicy.xml'添加到服务根目录(WCF根应用程序) - 所以我做了......但仍然得到相同的异常。

(我正在使用.net 4.0和我使用IIS 7.5的服务)

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

见:
http://msdn.microsoft.com/en-us/library/cc645032%28VS.95%29.aspx

您可能需要crossdomain.xml以及clientaccesspolicy.xml。

e.g。 crossdomain.xml的

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

和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>

同时检查此链接:
http://timheuer.com/blog/archive/2008/04/06/silverlight-cross-domain-policy-file-snippet-intellisense.aspx

仔细检查所需文件是否在正确的路径中。我曾经遇到过flash应用程序的这个问题,因为xml文件位于错误的目录中而一直打破。