2011-10-04 123 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調用的服務器進行訪問。