Интеграция 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 просто находится в пространстве имен, которое вы не ожидаете.