Использование Soapsuds.exe при удаленном взаимодействии
Этот раздел относится к технологии прежних версий, которая сохраняется для обеспечения обратной совместимости с существующими приложениями и не рекомендуется для разработки новых приложений. Сейчас распределенные приложения следует создавать с помощью Windows Communication Foundation (WCF).
Средство Soapsuds.exe позволяет создать сборку или исходный код, содержащие метаданные, которые необходимы для вызова удаленного объекта.
Примечание |
---|
Средство Soapsuds.exe работает только с удаленными объектами, использующими канал HttpChannel. |
Чтобы создать сборку, введите команду следующего вида:
soapsuds.exe -url:http://SomeServer/MyObject.rem?wsdl -oa:MyProxy.dll
Здесь удаленный объект размещен на компьютере SomeServer, а URL-адрес объекта имеет вид MyObject.rem. Заметьте, что в конец URL-адреса добавляется ?wsdl. Оно является обязательным, чтобы средство Soapsuds.exe могло работать. После этого можно ссылаться на созданный файл MyProxy.dll в клиентском приложении.
Чтобы создать исходный код, введите команду следующего вида:
soapsuds.exe -url:http://SomeServer/MyObject.rem?wsdl -gc
Здесь удаленный объект размещен на компьютере SomeServer, а URL-адрес объекта имеет вид MyObject.rem. Заметьте, что в конец URL-адреса добавляется ?wsdl. Оно является обязательным, чтобы средство Soapsuds.exe могло работать. Созданный файл Server.cs можно добавлять в проект приложения. Дополнительное преимущество заключается в том, что теперь не нужно распространять с клиентским приложением отдельную прокси-сборку.
Независимо от типа вывода (сборка или исходный код), средство Soapsuds.exe по умолчанию создает прокси с оболочкой. Прокси с оболочкой — это класс, наследуемый от RemotingClientProxy. URL-адрес удаленного объекта жестко задан в коде этого производного класса. Кроме того, в командной строке можно указать параметр -nowp
, чтобы создавать прокси без оболочки. Класс, создаваемый для прокси без оболочки, является пустым классом. Различие между прокси с оболочкой и без оболочки можно понять, если дважды создать исходный код удаленного объекта — сначала с параметром -nowp
, а затем без него (проследите за тем, чтобы второй файл CS имел другое имя, иначе он перезапишет первый файл при повторном запуске средства Soapsuds.exe). Необходимо создавать прокси без оболочки, поскольку URL-адрес удаленного объекта не должен жестко задаваться в коде.
Дополнительные сведения о параметрах командной строки средства Soapsuds.exe см. в разделе Soapsuds Tool (Soapsuds.exe).