Ну, ничего не было "неправильно", но сообщение об ошибке не удовлетворяло. Как только я получил его, мне просто нужно было заменить:
EndpointIdentity.CreateX509CertificateIdentity(certificate)
по:
EndpointIdentity.CreateDnsIdentity(settings.MailService.EndpointDns)
в инициализации идентификации конечной точки. И ожидаемое значение было в сообщении об ошибке ...
Что помогло мне, так это настроить фабрику каналов, которая инициализируется чтением классического файла .config в класс конфигурации:
ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
fileMap.ExeConfigFilename = "MailService.config";
Configuration newConfiguration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
_channelFactory = new ConfigurationChannelFactory<IMailService>("MyEndpoint", newConfiguration, new EndpointAddress("net.tcp://myserver:1001/MyServiceRelay/MyServiceRelay.svc"));
(ну, это не удалось вызвать конечную точку, просто дал подсказку).
Остается открытым вопрос: почему классическая конфигурация работала, не жалуясь на конечную точку DNS? Я проверил это снова. Я прочитал об этой проверке безопасности еще до 2010 года (предотвращает фишинг). Также полезно: https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/service-identity-and-authentication
Комментарии приветствуются.