Во-первых, убедитесь, что имя учетной записи и пароль верны, вы также можете использовать домен / пользователя.
client.ClientCredentials.UserName.UserName = @"domain\username";
client.ClientCredentials.UserName.Password = "password";
Во-вторых, проверьте автоматически созданную конечную точку службы. Он должен находиться в Reference.cs
. Параметр в конструкторе - enum
, который указывает, какую конечную точку следует использовать.
ServiceReference1.Service1Client client = new ServiceReference1.Service1Client(ServiceReference1.Service1Client.EndpointConfiguration.BasicHttpBinding_IService1);
client.ClientCredentials.UserName.UserName = "administrator";
client.ClientCredentials.UserName.Password = "abcd1234!";
Наконец, мы также можем вручную добавить заголовок Basi c Http в запросе soap.
client.ClientCredentials.UserName.UserName = "UserName";
client.ClientCredentials.UserName.Password = "Password";
using (OperationContextScope scope = new OperationContextScope(client.InnerChannel))
{
HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty();
httpRequestProperty.Headers[System.Net.HttpRequestHeader.Authorization] = "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(client.ClientCredentials.UserName.UserName + ":" + client.ClientCredentials.UserName.Password));
OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty;
// below is a sample call
int response = client.addNumbers(1, 2);
Console.WriteLine(response);
Console.ReadLine();
}
Не стесняйтесь сообщить мне, если проблема все еще существует.