我們有一個內置於VB6的EPOS系統。客戶使用Microsoft Dynamics AX作爲CRM系統。第三方爲我們的客戶創建了AX實現,他們已經公開了我們需要使用的一組WCF Web服務來同步EPOS和AX CRM之間的數據。瞭解VB6會遇到調用WCF服務的問題,我創建了以下組件來處理EPOS和AX CRM之間的通信。VB6軟件使用WCF Web服務。 App.config中的端點。錯誤VB6沒有App.config
VB6 EPOS它調用 - >
1)VB6 DLL包裝它調用 - >
2).NET(3.5)COM可調用代理DLL包裝它調用 - >
3).NET(3.5)Web服務處理程序(其中Web服務實際被調用的地方) - >
Microsoft Dynamics AX CRM。
我建Vb.NET測試控制檯應用程序來模擬從VB6調用幫助調試,以便測試控制檯應用程序調用組件2.
雖然這樣做,我收到以下異常: -
「(找不到在servicemodel客戶端配置部分中引用合同'X'的默認端點元素,這可能是因爲沒有爲您的應用程序找到配置文件,或者因爲在客戶端中找不到匹配此合同的端點元素元素。)「
我搜索了一下,發現我必須將組件3的app.config中的綁定和端點部分複製到我的測試控制檯應用程序的新app.config中。我不知道WCF,現在還沒有足夠的時間去真正學習它,直到我明白爲什麼這會修正這個錯誤。
現在,雖然我試圖從VB6 EPOS調用服務,並且此錯誤再次彈出。所以我給組件2添加了一個app.config,認爲組件2是鏈中的第一個.NET(3.5)組件,這是端點聲明應該去的地方,但不是。錯誤仍然彈出。
有沒有人有任何想法?任何編程英雄,可以擺脫這個簡單的一些簡單的請點亮?請不要問我們爲什麼不重寫EPOS。我們會。只是還沒有。這裏有超過300萬行意大利麪代碼,我只用了8個月的時間!
另外,這種情況不會破壞OOP的黃金法則之一,即封裝。爲什麼我的VB6 EPOS需要知道組件3用於訪問WCF服務的端點?這裏
感謝您的支持!我會研究你的建議。不過要說,我認爲我的觀點重新打破OOP的規則,儘管如此。我想不出爲什麼在這樣的情況下,你的初始調用者應該知道什麼是組件中的幾個步驟。也許這是因爲我不知道WCF。更好地學習它快! – psiberman
對,我認爲在大多數情況下,初始調用者知道有關如何調用WCF服務的詳細信息是可以的。有關地址,合同,綁定,端點等的配置細節實際上只是描述如何到達服務的信息部分,而不是真正關於服務的作用或它的作用...... – fdfrye
您也可以創建一個' MyVB6.exe.config'文件(其中_MyVB6.exe_是使用WCF服務的VB6可執行文件),以便找到WCF服務配置信息。我以前成功完成了這個任務。此外,爲了調試,您還可以實際創建一個'VB6.exe.config'文件,因爲通過VB6.exe可執行文件進行調試。 HTH。 – fourpastmidnight