Обойдя эту проблему, мне удалось воспроизвести печально известную:
Служба «Сервис» имеет нулевые конечные точки приложений (не инфраструктурные).Это может быть связано с тем, что для вашего приложения не найден файл конфигурации, или из-за невозможности найти элемент службы, соответствующий имени службы, в файле конфигурации или из-за отсутствия конечных точек в элементе службы.
Исключения показывают, что метод EnsureThereAreNonMexEndpoints
вызывается для объекта System.ServiceModel.Description.DispatchBuilder
, который вызывает исключение.
Копаясь в этот метод с помощью Reflector, я обращаюсь-проектировал следующую реализацию, которая выражает эквивалентную функциональность:
private void EnsureThereAreNonMexEndpoints(ServiceDescription description)
{
foreach (ServiceEndpoint endpoint in description.Endpoints)
{
if (endpoint.Contract.ContractType != typeof(IMetadataExchange))
{
return;
}
}
throw InvalidOperationException();
}
Может показаться, что единственной конечной точкой, рассматриваемой инфраструктурой WCF, является IMetadataExchange
.Ха.
Чем больше ты знаешь.