我有一個傳統的VB6應用程序需要調用.Net .dll以調用WCF Web服務。VB6調用WCF:找不到端點元素
起初,我得到這個惱人的消息:
找不到名爲「DocumentMetadataPortSOAP12」 並在ServiceModel客戶 配置部分合同「CODSRef.DocumentMetadataType」終結點元素。這可能是因爲沒有爲您的應用程序找到配置文件 ,或者因爲在客戶端元素中找不到此名稱匹配的端點元素 。
我跟着這個鏈接 - Using app.config with Interop Controls - 它幫我把我的VB6測試exe的工作:從它改名MyVb6Test.exe.config
網測試客戶端
2)
1)複製一個app.config(與VB6 exe相同的名稱)。
到目前爲止,這麼好。
目前存在的問題:
實際的客戶端是一個VB6.EXE調用VB6的.dll文件,它調用的.Net/COM感知.dll文件:
MyLegacyVb6App.exe
+-> MyNewVB6plugin.dll
+-> MyNewdotNet.dll
+-> WCF
即使我創建MyLegacyVb6App.exe.config
- 酷似工作VB6測試 - 我仍然得到
下面是「MyNewDotNet.dll的」 Net代碼「無法名爲‘DocumentMetadataPortSOAP12’......找不到終結點元素」:
DocNotificationRequesttype wsRequest = new DocNotificationRequesttype();
DocumentMetadataTypeClient wsClient = new DocumentMetadataTypeClient("DocumentMetadataPortSOAP12", m_wsUrl);
DocNotificationResponsetype wsResponse = wsClient.DocNotification(wsRequest);
問:有沒有什麼理由我實際上需要一個「app.config」?有什麼方法可以直接在我的C#代碼中直接「硬編碼」嗎?
問:我對我的場景有什麼其他替代方案:VB6 exe -> VB6 .dll -> .Net/Interop .dll => WCF
???
非常感謝您提前!
我懷疑你的.NET DLL不能讀取配置文件。您需要對.NET DLL源代碼進行代碼更改,以便它可以讀取它自己的配置文件。 – abhi