У меня есть код, который использует службу WCF.Служба защищена базовой аутентификацией, поэтому при создании клиента я использую следующий код:
BasicHttpBinding httpBinding = new BasicHttpBinding();
httpBinding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly;
httpBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;
httpBinding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None;
httpBinding.Security.Transport.Realm = service_realm;
EndpointAddress address = new EndpointAddress(service_address);
Service.ServiceClient client = new Service.ServiceClient(httpBinding, address);
client.ClientCredentials.UserName.UserName = service_username;
client.ClientCredentials.UserName.Password = service_password;
Работает нормально, когда я запускаю код из консольного приложения.Но когда я запускаю тот же код из службы Windows, создается исключение MessageSecurityException, сообщающее, что мой запрос был неавторизованным.По какой-то причине он использует текущую учетную запись Windows для проверки подлинности, поскольку моя собственная учетная запись имеет доступ к службе.Но я не хочу этого, я хочу использовать сохраненные учетные данные.Что мне здесь не хватает?