我有一个Silverlight 3项目,我需要调用Java WebService - 绑定没问题(SOAP 1.1和basicHttpBinding):
ClientConfig文件:
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="SkyinfoTestInterfaceExport2_SkyinfoTestInterfaceHttpBinding"
maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
<security mode="None">
<transport>
<extendedProtectionPolicy policyEnforcement="Never" />
</transport>
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="myAddress"
binding="basicHttpBinding" bindingConfiguration="SkyinfoTestInterfaceExport2_SkyinfoTestInterfaceHttpBinding"
contract="SkyInfoServiceReference.SkyinfoTestInterface" name="SkyinfoTestInterfaceExport2_SkyinfoTestInterfaceHttpPort" />
</client>
</system.serviceModel>
当我在客户端上调用方法时,我收到此策略错误:
尝试向URI'...'发出请求时发生错误。这可能是由于尝试在没有适当的跨域策略的情况下以跨域方式访问服务,或者是不适合SOAP服务的策略。您可能需要联系服务的所有者以发布跨域策略文件,并确保它允许发送与SOAP相关的HTTP标头。在不使用InternalsVisibleToAttribute属性的情况下,在Web服务代理中使用内部类型也可能导致此错误。有关更多详细信息,请参阅内部异常。
我知道这两个策略XML文件,但我试图调用的Java EE服务托管在我无法访问的IBM WebSphere Process Server上。
有人知道如何解决此政策例外吗?
答案 0 :(得分:0)
由于您无权访问服务器以实施跨域策略,因此您需要实现代理RIA服务。只需模仿本地服务的请求/响应,并将这些请求转发到原始服务上 - 然后根据需要返回响应。