我有一个silverlight 4应用程序。当我创建它创建了2个项目。我的实际Silverlight应用程序和一个名为MySolutionName.web(不知道除了托管我的silverlight页面之外会做什么)。
根据this question的反馈,我将我的WCF内容添加到MySolution.web项目中。但是当我从我的silverlight应用程序调用该服务时,我的返回对象的值为空(只有一个名为PropertyChanged的属性为null)。
我想尝试使用WCF测试客户端调用WCF服务,但我不知道它的URL。我怎么能弄明白呢?
答案 0 :(得分:0)
只需查看Silverlight应用程序项目中的ServiceReferences.ClientConfig文件即可。
添加服务引用时会创建此文件。endpoint元素具有属性地址。我相信这就是你要找的东西。
因为您将WCF托管在与托管Silverlight应用程序
的项目不同的项目中 您应该确保在承载wcf服务的解决方案/项目中有clientaccesspolicy.xml文件。 以下是文件内容的示例:
<?xml version="1.0" encoding="utf-8" ?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="SOAPAction">
<domain uri="http://*"/>
<domain uri="https://*" />
</allow-from>
<grant-to>
<resource include-subpaths="true" path="/"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
此文件用于跨域调用。默认情况下,Silverlight只能与发起xap文件的域通信。