C# WCF跨域策略安全错误

C# WCF跨域策略安全错误,c#,.net,wcf,silverlight,visual-studio-2008,C#,.net,Wcf,Silverlight,Visual Studio 2008,我使用的是VSTS2008+C+WCF+.NET3.5+Silverlight3.0。我在html页面中托管Silverlight控件,并从VSTS 2008按F5进行调试,然后在VSTS 2008内置的ASP.Net开发web服务器中运行,然后调用另一台运行IIS 7.0+Vista的计算机上托管的WCF服务。WCF服务非常简单,只需向客户端返回一个常量字符串 从Silverlight调用WCF服务时,我收到以下错误消息 尝试向URI发出请求时出错。这可能是由于在没有适当的跨域策略或不适合SO

我使用的是VSTS2008+C+WCF+.NET3.5+Silverlight3.0。我在html页面中托管Silverlight控件,并从VSTS 2008按F5进行调试,然后在VSTS 2008内置的ASP.Net开发web服务器中运行,然后调用另一台运行IIS 7.0+Vista的计算机上托管的WCF服务。WCF服务非常简单,只需向客户端返回一个常量字符串

从Silverlight调用WCF服务时,我收到以下错误消息

尝试向URI发出请求时出错。这可能是由于在没有适当的跨域策略或不适合SOAP服务的策略的情况下,试图以跨域方式访问服务。您可能需要联系服务的所有者以发布跨域策略文件,并确保它允许发送与SOAP相关的HTTP头。此错误也可能是由于在web服务代理中使用内部类型而未使用InternalsVisibleToAttribute属性造成的。有关详细信息,请参阅内部异常

这是clientaccesspolicy.xml文件,有什么问题吗

<?xml version="1.0" encoding="utf-8" ?>
<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from  http-request-headers="*">
        <domain uri="*">
        </domain>
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"></resource>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

这可能是在黑暗中拍摄的。但我记得在vista和IIS7上本地设置WCF服务时遇到过类似的情况。事实证明,我不得不在我的web.config文件中添加一些行,特别是使用BaseAddressPrefixFilter,请阅读另一篇文章:。我有一个问题,因为我的默认网站有多个主机绑定。这需要*:80和www.mydomain.com:80,WCF不喜欢这样

我有一个类似的问题,但我的解决方法简单得多。 在我的clientConfig文件中,我的不同服务的端点地址具有不同的URL。 有些有本地主机,有些在URL中有我的机器名。
一旦我让所有人都使用本地主机,它就解决了我的问题。

一个想法是使用fiddler并找到请求跨域策略xml的请求。这是失败吗?检查它所指向的地址。我用它调试了我的问题。它指向服务器的根目录,我的crossdomainpolicy xml位于WCF项目文件夹中。

所以WCF服务是作为网站构建的,托管在IIS中,clientaccesspolicy位于共享站点的根目录中?是的。我发布的是clientaccesspolicy.xml的内容。我在服务器端使用自签名证书,可以吗?听说跨域WCF https调用的自签名证书有一些限制,不确定是否有限制?