Реализация клиента SOAP в C # с WCF и .NET 4.0 - PullRequest
6 голосов
/ 12 мая 2011

У меня проблемы с началом работы с WCF в .NET 4.0. Это моя ситуация:

Я создал небольшой SOAP-сервер на PHP. У меня есть проект C #, в котором я хочу подключиться к этому серверу и инициировать связь SOAP.

Моя проблема в том, что я понятия не имею, как это сделать в C #. Я не могу найти правильное введение в WCF. Есть способы сделать это. Но я не могу найти подходящие классы и ссылки для добавления в мой проект C #. Есть ли уроки, как этого добиться в C #? Я много искал и не нашел ничего, что помогло бы мне.

Я хочу загрузить WSDL с моего сервера SOAP во время выполнения, сделать запрос SOAP, получить ответ и все готово. Но с чего мне начать? Сайт MSDN о WCF только сбивает меня с толку.

Редактировать : Вероятно, нет необходимости извлекать файл WSDL во время выполнения. Так что это больше не нужно.
Я использовал svcutil для создания класса и встроил его в свой проект. Я еще не смог протестировать его, потому что у меня возникли некоторые проблемы с базой данных MySQL (она работает и доступна из инструмента командной строки mysql или mysqladmin, но я не могу подключиться к ней с помощью любой другой программы ...) , Я сообщу, как только узнаю, работает ли он.

Редактировать 2 : Я следовал подходу Кевса, и в итоге он сработал очень хорошо. Моя последняя проблема заключалась в том, что я использовал класс обслуживания в DLL. Мне нужен был app.config в программе, которая тоже использовала DLL. После того, как я это сделал, все получилось.

1 Ответ

8 голосов
/ 12 мая 2011

Самый быстрый способ сделать это - щелкнуть правой кнопкой мыши «Add Service Reference» в проекте вашего клиента в разделе «Ссылки». Направьте диалог на местоположение WSDL и нажмите Go:

enter image description here

URL-адрес, который я использовал, был для стиля ссылки на службу .NET, вам нужно будет заменить на то, что ваша служба PHP SOAP использует для представления своего WSDL.

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

Чтобы получить доступ к сервису, вы можете сделать что-то вроде (хотя ваша конкретная реализация не будет такой же):

MyService.MyWebServiceSoapClient ws = new MyService.MyWebServiceSoapClient();
string result ws.DoThing();

Обратите особое внимание на часть SoapClient имени прокси-класса, это добавляется к имени службы мыла генератором прокси-кода.

Генератор прокси также создаст все необходимые настройки в вашем файле web.config или app.config.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...