На стороне клиента я пытаюсь вызвать динамически добавленную операцию Ping, не зная типа контакта. Как я могу вызвать метод Ping?
Я попробовал ниже на стороне клиента, но это не работает
Код: Выделить всё
var channel = GetServiceProxy(); var result = channel.Ping();
[ServiceContract(Namespace = "http://tempuri.org/")]
public interface IDynamicPing
{
[OperationContract(Action = "http://tempuri.org/Ping")]
string Ping();
}
public static IDynamicPing GetServiceProxy()
{
var binding = new NetNamedPipeBinding(NetNamedPipeSecurityMode.None);
binding.MaxReceivedMessageSize = 9999999;
var endpoint = new EndpointAddress("net.pipe://localhost/SampleWcfCustomerService/Service.svc");
ChannelFactory factory = new ChannelFactory(binding, endpoint);
return factory.CreateChannel(endpoint);
}
Код: Выделить всё
Сообщение с действием «http://tempuri.org/Ping» не может быть обработан на получателе из-за несоответствия ContractFilter в EndpointDispatcher. Это может произойти либо из-за несоответствия контракта (несовпадение действий между отправителем и получателем), либо из-за несоответствия привязки/безопасности между отправителем и получателем. Убедитесь, что отправитель и получатель имеют один и тот же контракт и одинаковую привязку (включая требования безопасности, например, «Сообщение», «Транспорт», «Нет»).'
Кто-нибудь может помочь я?
Подробнее здесь: https://stackoverflow.com/questions/793 ... tract-type
Мобильная версия