在Silverlight中通过https访问soap

时间:2011-10-04 22:20:43

标签: c# silverlight web-services soap https

我有一台服务器,我在另一台带有axis2和apache的计算机上托管。 IM只是试图通过https连接到它。

CustomBinding binding = new CustomBinding(SecurityBindingElement.CreateUserNameOverTransportBindingElement());

binding.Elements.Add(new HttpsTransportBindingElement());
EndpointAddress endpoint = new EndpointAddress("https://othercomputer/axis2/services/DataModel");
DataClient client = new DataClient(binding, endpoint);
client.ClientCredentials.UserName.UserName = "a";
client.ClientCredentials.UserName.Password = "a12345";
return client;

我的用户代码未使用此代码处理通信异常,我这样做了吗?

修改以及更多请求的信息: 下面是例外:

  

尝试向URI'https:// othercomputer / axis发出请求时发生错误   /服务/ DataModel的”。这可能是由于试图以交叉方式访问服务   没有适当的跨域策略的域方式,或者是一个策略   不适合SOAP服务。您可能需要联系服务的所有者   发布跨域策略文件并确保它允许与SOAP相关的HTTP标头   被发送。使用Web服务中的内部类型也可能导致此错误   不使用InternalsVisibleToAttribute属性的代理。请看内心   更多细节的例外。

身份验证是基本身份验证,我的一位同事认为证书存在问题并认为可能是因为证书是自行生成的。

1 个答案:

答案 0 :(得分:2)

它被视为跨域调用。您需要添加一个clientaccesspolicy.xml文件,该文件可通过您进行SOAP调用的同一服务器访问。