2013-05-06 120 views
1

我有一个包含Silverlight 4项目和WCF类库项目的解决方案。 并且我在Silverlight项目中添加了对WCF服务的服务参考(WCF未在IIS上发布)。我尝试从Silverlight项目调用该服务,但它给了我以下例外:从silverlight消费WCF服务4

尝试向URI发出请求http://localhost:8732/Design_Time_Addresses/CustomWcfService/MyService/时发生错误。这可能是由于尝试以跨域方式访问服务而没有适当的跨域策略或者不适合SOAP服务的策略。您可能需要联系服务的所有者以发布跨域策略文件,并确保它允许发送与SOAP相关的HTTP头。使用Web服务代理中的内部类型而不使用InternalsVisibleToAttribute属性也可能导致此错误。有关更多详细信息,请参阅内部例外。

我试图通过将以下两个文件到WCF库项目来解决这个问题

它具有以下XML

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

2)的crossdomain.xml包含

1)clientaccesspolicy.xml以下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> 

然后构建WCF项目并更新silverlight项目中的服务引用但同样的例外依然存在。

我应该怎么做来处理这个异常?我应该发布这项服务吗?这是否被认为是自我托管?

+0

手动删除现有的参考,并添加一个新名称! – Sajeetharan 2013-05-06 04:59:08

+0

您在服务器上添加了clientaccesspolicy.xml文件的位置? – Stainedart 2013-05-06 17:53:52

回答

0

将您的clientaccesspolicy.xml文件放入iis的根目录。在例如c:\ inetpub \ wwwroot