从sharelight托管的silverlight调用自托管跨域WCF服务

时间:2010-08-17 10:26:27

标签: wcf silverlight-4.0 sharepoint-2010

因为标题已经说明我试图从sharepoint 2010中托管的silverlight 4.0应用程序调用自托管WCF服务(托管在Windows服务中)。我使用basicHttpBinding并且我已经尝试了很多东西建议在这里:

http://www.dotnetfunda.com/articles/article416.aspx

或在这里

http://blogs.msdn.com/b/carlosfigueira/archive/2008/03/07/enabling-cross-domain-calls-for-silverlight-apps-on-self-hosted-web-services.aspx

但是没有一个工作我仍然得到错误:

尝试向URI“serviceuri”发出请求时发生错误。这可能是由于尝试在没有适当的跨域策略的情况下以跨域方式访问服务,或者是不适合SOAP服务的策略。您可能需要联系服务的所有者以发布跨域策略文件,并确保它允许发送与SOAP相关的HTTP标头。有关更多详细信息,请参阅内部异常。

内部异常说明:

部署Office解决方案时,请检查以确保您已满足所有安全要求。

http://myserver/clientaccesspolicy.xmlhttp://myserver/crossdomain.xml可以访问两个文件clientaccesspolicy.xml和crossdomain.xml

有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

所有这些都帮助了我。但对我来说最重要的事情是打开Fiddler并跟踪Sharepoint + Silverlight的请求/响应。由于某种原因,我收到了502错误。我注意到我的代码中的Url是“http:// localhost:”,但是来自silverlight的请求是“http:// [servername]:”你会认为这应该有效,但事实并非如此。

我记得在“localhost”给我带来问题之前我遇到了问题,因此我所做的是从/ windows / system32 / drivers / etc编辑我的主机文件,只需添加以下行:: 127.0.0.1 [servername]

我做了一个iisreset,我离开了小提琴手,我取消选中了启用IPv6选项(工具 - > Fiddler选项),一切都开始工作了。可以访问Clientaccesspolicy.xml,sharepoint + silverlight可以调用wcf世界:)!!!

然而,有一个主要问题,当你关闭Fiddler时,它停止了工作......现在我必须把这个问题解决掉......

我希望这会让你失望。