Да, клиент WCF может работать против веб-службы, созданной с помощью другой технологии или платформы. Это довольно часто. В Visual Studio код клиента на стороне клиента создается для вас из WSDL, и вы можете вызывать удаленную службу, как если бы это был локальный код.
Чтобы не использовать бесстыдный плагин, вот пример клиента WCF, вызывающего веб-сервис Amazon S3 , который, безусловно, не построен с использованием .NET. Пример демонстрирует типичный рабочий процесс при создании клиента WCF:
Добавьте ссылку на службу к веб-службе, указав Visual Studio на URL-адрес WSDL. Вам не нужно ничего кодировать на этом шаге.
Вызовите веб-сервис из вашего кода. В приведенном ниже коде класс AmazonS3Client был создан Visual Studio на шаге 1 выше. Вы получаете полный смысл при вводе client.ListAllMyBuckets для вызова этой службы.
static void Main(string[] args) {
DateTime now = LocalNow();
// create the web service client object
AmazonS3Client client = new AmazonS3Client();
// invoke the web service
var result = client.ListAllMyBuckets(
accessKeyId,
now,
SignRequest(secretAccessKey, "ListAllMyBuckets", now));
// show the results returned from the web service
foreach (var bucket in result.Buckets) {
Console.WriteLine(bucket.Name);
}
}