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

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

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

Почему я не понимаю?

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

Любые советы?

Ответ 1

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

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

Ответ 2

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

Ответ 3

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

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

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