簡體   English   中英

從Excel調用包含WCF Web服務的C#DLL

[英]Calling C# DLL that contains WCF web service from Excel

之前已經問過這個問題,但我的情況略有不同。

我有一個Excel加載項,我們分發給我們的用戶,現在需要將其連接到下游系統。 那個下游系統為我提供了WCF Web服務,因此我設計了一個C#DLL包裝器,可以通過COM公開該包裝器,該包裝器將與WCF Web服務進行通信並將結果通過COM接口返回給Excel。

我現在讓Excel與COM包裝程序通信很好,盡管由於我還不了解Excel和.NET運行時版本的原因,我不得不恢復DLL的Framework 3.5。 問題是,當我在C#DLL中調用COM公開的方法時,收到一條錯誤消息,提示“找不到默認端點...”。

該錯誤似乎是由於未獲取服務配置,顯然是因為我沒有app.config,因為這純粹是一個獨立的DLL。 我可以確定可以將配置放在Excel.exe.config中,但這不是一個選擇,因為不允許更改用戶的Excel配置。 而且我無法將值硬編碼到C#代碼中,因為我們將需要使用外部配置文件配置的不同環境。

基本上,我需要有一個配置文件,該文件可以隨我的DLL和excel加載項一起分發,以便當excel調用我的COM公開的C#DLL時,它也將拾取配置文件並從那里加載WCF終結點配置。 我知道如何使用ConfigurationManager讀取配置文件,但無法弄清楚如何讓.NET知道此配置文件包含WCF服務的EndPoint信息。 到目前為止,我發現的唯一解決方案是覆蓋默認的應用程序域配置加載,以便.NET加載您為app.config默認設置手動指定的文件,但是我為此在線提供的所有解決方案都使用.NET 4.5對象和代碼,當我僅限於.NET 3.5時。

誰能幫我這個?

您應該考慮在代碼中而不是在配置文件中配置WCF客戶端終結點。 有關更多詳細信息,請參見:

http://msdn.microsoft.com/en-us/library/ff647110.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM