2011-08-15 100 views
3

如何創建一個VB6客戶端連接到WCF Web服務?VB6連接到WCF

是否有更好的解決方案來創建Web服務而不是使用WCF,以便從VB6連接起來更容易?

回答

2

你可以找到在VB6編寫一個SOAP客戶端文章 - 如this one

我會提出一些建議供你看看替代客戶端或Web服務技術:

  1. 爲什麼去一種不同的網絡服務技術,以便用10年前的技術編寫客戶端。我曾經是一名VB6程序員,所以我沒有反對 - 但爲了使用相當老的客戶端技術,它似乎是設計不同服務的奇怪設計選擇。你必須有你的理由,但我只想挑戰他們一點。
  2. 我最近編寫了一個WCF客戶端應用程序 - 在c#中使用自動生成的代理 - 工作正常。也就是說,Web服務的REST體系結構有時候更容易理解,並且可能是一種更適合VB6的替代方案。您的Web服務是否必須使用類似於體系結構的SOAP?

我的建議是,如果你堅持使用VB6,並且對於Web服務端來說很靈活,那麼可以看看REST架構。如果你想採用SOAP方式--WCF對我來說工作得很好,你應該能夠在VB6中獲得一些工作,但是我會尋找關於在VB6中使用SOAP的文章,因爲關於VB6沒有太多關於使用SOAP的文章和WCF。

+0

1.現有軟件仍在使用VB6。 – kelvinfix

+0

我猜想會是這種情況 - 但我不知道你的應用程序是如何模塊化的,也許是一個VB.NET模塊來做WCF位?顯然不知道你的申請,所以這只是一個建議。 – iandotkelly

11

這確實取決於您的要求是什麼。以下是一些建議:

  1. 您可以編寫一個.NET程序集,該程序集具有對WCF服務的服務引用,並且具有包含在COM對象中的包裝類。您可以從中訪問VB6的Web應用程序。唯一的問題是在這種情況下調用app.config文件。這很容易通過AppDomain.CurrentDomain.SetupInformation.ConfigurationFile找到this stackoverflow answer illustrates。如果您的VB6應用程序與您的服務位於同一個LAN上,這將具有允許您使用netTcpBinding的優勢,該程序的開銷比http綁定少。如果您需要斷開訪問服務,您也可以變得非常具有異國情調並使用類似netMsmqBinding的東西。
  2. 已棄用Soap Toolkit 3.0有一個COM SOAP客戶端。如果我打算嘗試使用它,我可能會堅持使用basicHttpBinding
  3. 如果您的服務在參數和返回值方面相對簡單,那麼您可能需要考慮使用webHttpBinding,進行原始http調用並自行解析結果。