Интеграция Salesforce .net API - PullRequest
       6

Интеграция Salesforce .net API

10 голосов
/ 20 апреля 2011

Я немного растерялся.Мы загрузили файл WSDL из Salesforce и создали веб-ссылку на него, используя предложенный путь к файлу.Он создал то, что я понимал как прокси-классы, но не класс SforceService.

Кто-то еще предложил вам использовать WSDL.exe для генерации файла класса, который я сделал, и теперь он работает.

Что я не понимаю, почему?

Разве процесс создания веб-ссылки не настраивал прокси при необходимости?Почему дополнительный шаг?

Есть совет?

Ответы [ 3 ]

10 голосов
/ 20 апреля 2011

Класс SforceService генерируется только в том случае, если вы добавляете веб-ссылку (из расширенной кнопки в диалоге добавления ссылки на службу), если вы добавляете ссылку на службу, вы получаете другой набор объектов и другую модель программирования.

Все примеры .NET на сайте salesforce используют прокси-серверы для добавления веб-ссылок, но если вместо этого вы предпочитаете использовать стиль WCF (так называемый сервисный справочник), это тоже хорошо.

5 голосов
/ 21 апреля 2011

Хорошо, теперь я вспомнил, почему сложно использовать сервисную ссылку вместо веб-ссылки. WCF не поддерживает определенные в WSDL заголовки SOAP, которые Salesforce API использует для переноса идентификатора сеанса. Для каждого приложения вы должны интегрировать специальную обработку, например, , описанную здесь , чтобы выполнять все операции и изменять поведение их конечных точек. Гадкий в лучшем случае. С другой стороны, веб-ссылка напрямую поддерживает мыльные заголовки.

1 голос
/ 20 апреля 2011

Прежде всего, вы должны использовать «Добавить ссылку на службу» вместо «Добавить веб-ссылку», если у вас нет выбора.

Во-вторых, «Добавить веб-ссылку» обычно создает тот же код, что и wsdl.exe. В вашем случае единственная причина, по которой я запускаю wsdl.exe, заключается в том, чтобы лучше видеть любые сообщения об ошибках.

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

...