我試圖調用VFP 9.0 SP2中的Web服務。託管服務的網站只能通過HTTPS訪問。我在ASP.NET項目中使用這個服務時沒有問題,但是當我嘗試在VFP中訪問它時,出現以下錯誤。通過HTTPS獲取在VFP中調用Web服務的錯誤
錯誤:1429 - 來自連接器的OLE IDispatch異常代碼0:連接器:證書不正確。 HRESULT = 0x800A1529 - 客戶端:處理此請求期間發生意外錯誤。 HRESULT = 0x800A1529 - 客戶端:發送SOAP消息失敗或未收到可識別的響應HRESULT = 0x800A1529 - 客戶端:未指定的客戶端錯誤。 HRESULT = 0x800A1529 .. 連接器:證書不正確。 HRESULT = 0x800A1529 - 客戶端:處理此請求期間發生意外錯誤。 HRESULT = 0x800A1529 - 客戶端:發送SOAP消息失敗或未收到可識別的響應HRESULT = 0x800A1529 - 客戶端:未指定的客戶端錯誤。 HRESULT = 0x800A1529
VFP和需要SSL的Web服務是否存在問題?
這是我用來測試連接的一些代碼。
這裏是一個比特的樣本代碼...
CLEAR
LOCAL lcEndPointURL
lcEndPointURL = "https://geocoding.bit-co.com/WS_Geo_v1/Service1.asmx?WSDL"
o = CREATEOBJECT("MSSoap.Soapclient30")
? o.MSSoapInit(lcEndPointURL)
? o.GetGeoCoderVersion
這導致錯誤的上方。
這裏有一些VB.NET代碼隱藏工作正常(一旦web服務被引用)。
Public Class About
Inherits System.Web.UI.Page
Dim wsGeo As New wsGeo.Service1
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim GCVersion As String = wsGeo.GetGeoCoderVersion
lblGCVersion.Text = GCVersion
End Sub
End Class
這段代碼產生了預期的效果
不應該有一個問題w/VFP,你怎麼試圖通過VFP調用服務。您是否嘗試通過HTTPS://yourWebServiceSite.com/whatever提供特定連接來建立SSL連接?在你的連接上顯示一些代碼(儘管保護實際的url,用戶和pwd信息)。 – DRapp 2012-03-18 13:07:45
這裏是一個比特的樣本代碼... CLEAR LOCAL lcEndPointURL lcEndPointURL = 「https://geocoding.bit-co.com/WS_Geo_v1/Service1.asmx?WSDL」 O = CREATEOBJECT(「MSSOAP .Sapapient30「) ? o.MSSoapInit(lcEndPointURL) ? o.GetGeoCoderVersion – Gwen 2012-03-19 03:17:28
感謝您對Fiddler的建議。我現在會研究它。 – Gwen 2012-03-19 15:27:30