2011-10-04 88 views
0

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

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; 

我得到一个通信的例外是由用户代码未处理的这段代码,我是这样做的权利?

编辑有进一步要求的信息: 继承人的异常: ':// othercomputer /轴 /服务/ DataModel的HTTPS' 而试图做出URI请求

发生错误。这可能是由于在没有适当的跨域策略或不适合SOAP服务的策略下尝试以跨域 域方式访问服务。您可能需要联系服务的所有者 发布跨域策略文件,并确保它允许发送与SOAP相关的HTTP标头 。此错误也可能是由于使用Web服务 代理中的内部类型而不使用InternalsVisibleToAttribute属性。有关更多详细信息,请参阅内部 例外。

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

+1

在提供许多有用信息之前,我们需要更多信息。 1)在服务中配置了什么样的安全模型(假设基本认证但你想知道)? 2)您可以提供哪些通讯例外的细节? –

回答

2

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