Я пытаюсь прочитать конфигурацию службы в библиотеке классов из файла app.config библиотеки. но становится ниже исключения
Не удалось найти элемент конечной точки с именем 'WSHttpBinding_IUsers' и контрактом 'ISGP.Plugins.SolveService.IUsers'
в разделе конфигурации клиента ServiceModel.
Это может быть потому, что для вашего приложения не найден файл конфигурации,
или потому, что в клиентском элементе не найден элемент конечной точки, соответствующий этому имени.
Я попытался реализовать приведенный ниже код, чтобы прочитать конфигурацию и создать клиента
public class ServiceManager
{
public static T CreateServiceClient<T>(string configName)
{
// string _assemblyLocation = Assembly.GetExecutingAssembly().Location;
var configuration = ConfigurationManager.OpenMappedExeConfiguration(
new ExeConfigurationFileMap
{
ExeConfigFilename = "app.config"
}, ConfigurationUserLevel.None);
ConfigurationChannelFactory<T> channelFactory = new ConfigurationChannelFactory<T>(configName, configuration, null);
var client = channelFactory.CreateChannel();
return client;
}
}
Вызовите этот метод, как показано ниже
usersClient= (UsersClient)ServiceManager.CreateServiceClient<IUsersChannel>("WSHttpBinding_IUsers");
usersClient.ClientCredentials.UserName.UserName = userName;
usersClient.ClientCredentials.UserName.Password = password;
Но выдает вышеприведенное исключение файл app.config, как показано ниже
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_IUsers">
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="None" />
<message clientCredentialType="UserName" establishSecurityContext="false" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="https://xxxxxx16.prod.xxxxx.local/WebServices/v3/Users.svc"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IUsers"
contract="ISGP.Plugins.SolveService.IUsers" name="WSHttpBinding_IUsers" />
</client>
</system.serviceModel>