доступ к службе WCF через URL
-
05-07-2019 - |
Вопрос
У меня есть служба WCF (скажем, WCFService1), развернутая на двух удаленных машинах.Поскольку одна и та же служба развернута на двух разных машинах, они имеют общий интерфейс и доступные общие методы.
WCFService1 развернут на Machine1 и Machine2.
Чтобы использовать службу WCF с клиентского компьютера, я создал клиентское приложение:
Я добавил ссылку на время разработки службы WCF (WCFService1 ) ( с помощью URL http://11.12.25.23/WCFService/Service1.svc).
Теперь я могу вызывать методы, представленные в сервисе.До сих пор все было в порядке...
Теперь мой вопрос это Если мне нужно обновить клиент во время выполнения с помощью той же службы, размещенной на другом компьютере с другим URL (скажем http://12.12.24.24/WCFService/Service1.svc), Как я могу это сделать?
В настоящее время я занимаюсь этим:
BasicHttpBinding binding = new BasicHttpBinding();
EndpointAddress address = new EndpointAddress("http://12.12.24.24/WCFService/Service1.svc");
MyServiceClient serviceClient = new MyServiceClient(binding, address);
но всякий раз, когда я использую для вызова метода, предоставленного в сервисе, я получаю ошибку binding mis match.
Решение
Вы пробовали сначала вызвать своего клиента?
например:
MyWCFClient client = new MyWCFClient();
client.EndPoint.Address = new EndpointAddress("http://somewhere:888/here.svc");
Другие советы
Я подозреваю, что если вы посмотрите в свой файл web.config на Machine1, вы увидите, что там есть привязка WSHttpBinding (или что-то отличное от BasicHttpBinding). Если вы измените его на BasicHttpBinding (при условии, что вы действительно этого хотите), вы удалите эту ошибку.
Как настроен ваш сервис?Покажите нам вашу конфигурацию на стороне сервера и клиента!
Несоответствие привязки означает, что вы либо используете не ту же привязку, либо какой-то важный параметр в привязке отличается - должно быть, что-то настроено неправильно - так что покажите нам конфигурацию!
Марк