Я создал базовый калькуляторный сервис MiniCalc, который имеет только две операции. Добавьте и Mul, и разместите его в консольном приложении.
using(ServiceHost host = new ServiceHost(typeof(MiniCalcService.Service),
new Uri("http://localhost:8091/MiniCalcService")))
{
host.AddServiceEndpoint(typeof(MiniCalcService.IService),
new BasicHttpBinding(),
"Service");
host.Open();
Console.Write("Press ENTER key to terminate the MiniCalcHost . . . ");
}
Затем я создал консольное приложение для использования службы и создал прокси вручную, создав класс прокси, а затем создал ChannelFactory для вызова службы.
EndpointAddress ep = new EndpointAddress("http://localhost:8091/MiniCalcService/Service");
IService proxy = ChannelFactory<IService>.CreateChannel(new BasicHttpBinding(),ep);
Мне удалось правильно вызвать контракт на обслуживание и получить результат, как и ожидалось.
Теперь я хотел создать прокси, используя Add Service Reference
.
Я получаю следующую ошибку при нажатии кнопки «Перейти» в окне «Добавить ссылку на службу»
There was an error downloading 'http://localhost:8091/MiniCalcService/Service'.
The request failed with HTTP status 400: Bad Request.
Metadata contains a reference that cannot be resolved: 'http://localhost:8091/MiniCalcService/Service'.
Content Type application/soap+xml; charset=utf-8 was not supported by service http://localhost:8091/MiniCalcService/Service. The client and service bindings may be mismatched.
The remote server returned an error: (415) Cannot process the message because the content type 'application/soap+xml; charset=utf-8' was not the expected type 'text/xml; charset=utf-8'..
If the service is defined in the current solution, try building the solution and adding the service reference again.
Что я пропускаю или делаю неправильно?