从共享点托管的 silverlight 调用自托管跨域 WCF 服务

问题描述 投票:0回答:1

正如标题已经指出的那样,我正在尝试从托管在 sharepoint 2010 中的 silverlight 4.0 应用程序调用自托管 WCF 服务(托管在 Windows 服务中)。我使用 basicHttpBinding 并且已经按照此处的建议尝试了很多方法:

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

或这里

链接

但它们都不起作用我仍然收到错误:

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

内部异常状态:

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

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

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

wcf silverlight-4.0 sharepoint-2010
1个回答
1
投票

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

我记得我之前遇到过“localhost”给我带来问题的问题,因此我所做的就是从 /windows/system32/drivers/etc 编辑我的主机文件,然后简单地添加以下行:: 127.0.0.1 [服务器名称]

我执行了 iisreset,让 fiddler 保持运行状态,并取消选中启用 IPv6 选项(工具 -> Fiddler 选项),一切都开始工作。可以访问Clientaccesspolicy.xml,并且sharepoint + silverlight可以调用wcf世界:)!!!

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

希望这对您有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.