Подтвердить что ты не робот

Как вызвать WCF-клиент из Excel 2003 VBA?

Как задан вопрос, как мне вызвать клиент WCF из Excel 2003 VBA?

Я видел, что есть место, где я могу позвонить в веб-службу, но я искал через Google, все результаты, которые я получаю, не могут вызвать клиента WCF из VBA.

Я хотел бы знать, какой метод использовать до того, как я что-нибудь сделаю с моим кодом, не хочу тратить время и обнаружить позже, что это невозможно сделать.

4b9b3361

Ответ 1

Возможно, вам стоит взглянуть на использование WCF-сервиса Moniker, который позволяет вам вызывать службу WCF из VBA без установки каких-либо элементов на клиентской машине Excel, отличной от .NET Framework.

Dim addr As String
addr = "service:mexAddress=""net.tcp://localhost:7891/Test/WcfService1/Service1/Mex"","
addr = addr + "address=""net.tcp://localhost:7891/Test/WcfService1/Service1/"","
addr = addr + "contract=""IService1"", contractNamespace=""http://tempuri.org/"","
addr = addr + "binding=""NetTcpBinding_IService1"",bindingNamespace=""http://tempuri.org/"""

Dim service1 As Object
Set service1 = GetObject(addr)

MsgBox service1.GetData(12)

Я выписал полный шаг за шагом пример.

/Damian

Ответ 2

Я долгое время пробовал вызывать сервис wcf на основе SOAP из excel vba без везения.

Вместо этого я изменил свой сервис на привязку REST (webHttpBinding). Таким образом, я мог бы загрузить данные stright в XML-карту, как это был любой другой XML файл. Работала хорошо для меня, но я только пытался импортировать некоторые данные.

Что касается SOAP; ответ в этом question упоминает набор инструментов веб-служб, который все, что я мог найти, предложил использовать.

Ответ 3

Я бы не использовал VSTO в этом случае. COM Interop, вероятно, лучший путь, если вы не хотите, чтобы в ваших сообщениях SOAP не было никакой безопасности.

  • Записать клиента WCF с необходимой привязкой
  • Открыть сборку для COM-взаимодействия
  • Ссылка на открытую сборку в Excel VBA

Ответ 4

Я сделал это с ограниченным успехом, используя Office 2003 Web Services Toolkit, но не без боли.

Обратите внимание, что это не поддерживается Microsoft и имеет ряд ограничений, которые могут сделать его непригодным для использования в производстве. Например. он не поддерживает веб-службы, которые возвращают пустые коллекции: см. fooobar.com/info/422212/....

Если вы хотите пройти этот маршрут, несмотря на то, что он не поддерживается, загрузите инструментарий и разместите все проблемы, которые у вас здесь есть.

Microsoft рекомендует использовать VSTO, но это не легко интегрируется с VBA...