Я примерно следую методу из WCF The Right Way... The Manual Way для настройки службы WCF.
У меня есть созданный вручную прокси-класс, который выглядит так:
// Setup a client so we can call our web services.
public class EmployeeClient :IEmployeeService
{
private readonly IEmployeeService EmployeeChannel;
public EmployeeClient(Binding binding, string address)
{
var endpointAddress = new EndpointAddress(address);
EmployeeChannel = new ChannelFactory<IEmployeeService>
(binding, endpointAddress).CreateChannel();
}
public EmployeeResponse SaveOrUpdateEmployee(EmployeeContract employee)
{
return EmployeeChannel.SaveOrUpdateEmployee(employee);
}
}
Затем я хочу позвонить в некоторые из этих служб. Но я не хочу использовать какие-либо файлы конфигурации (я настраиваю некоторые интеграционные тесты и не хочу больше зависимостей, чем необходимо).
В настоящее время я пытаюсь назвать их так:
serviceHost = SelfServiceHost.StartupService();
employeeClient = new EmployeeClient(new BasicHttpBinding(),
SelfServiceHost.StartUpUrl);
EmployeeResponse employeeResponse = employeeClient.SaveOrUpdateEmployee(emp);
Когда я это делаю, я получаю это исключение:
System.ServiceModel.ProtocolException: Тип содержимого text/xml; charset=utf-8 не поддерживается службой http://localhost:8090/EmployeeService. Привязки клиента и службы могут не совпадать. ---> System.Net.WebException: Удаленный сервер возвратил ошибку: (415) Невозможно обработать сообщение, поскольку тип содержимого 'text/xml; charset=utf-8» не был ожидаемым типом «application/soap+xml; кодировка=utf-8'..
Что мне нужно сделать, чтобы звонок в мою службу работал только с кодом?