Eu tenho um site .NET 2.0 (VB) em execução no meu IIS6 (XP Pro SP2) e um .NET 3.5 (configurado como .NET2 na guia ASP.NET do IIS, é claro) hospedando um serviço da web ASMX.
No Chrome, posso chamar o ASMX e invocar os métodos da web com sucesso. No entanto, ao chamar os métodos da web em código, eu recebo do site .NET 2.0:
A solicitação falhou com o status HTTP 401: Não autorizado.
Como faço para contornar isso?
Respostas:
19 para resposta № 1Você precisa definir as credenciais em seu aplicativo quando inicializar o webService
objeto.
Algo como webService.UseDefaultCredentials = true
Isso definirá as credenciais da solicitação para o usuário atual que está executando o aplicativo.
3 para resposta № 2
webService.UseDefaultCredentials = true
Isso funcionou para mim.
2 para resposta № 3
No IIS 7, ative a autenticação anônima e você poderá depurar.
2 para resposta № 4
você pode usar isto:
webservice.UseDefaultCredentials = true;
se não funcionar, use o código abaixo ao invés do código acima
webservice.Credentials = new NetworkCredential("userName", "password", "domain");
webservice.PreAuthenticate = true;
observação: o nome de usuário Senha e domínio é a credencial do usuário que acessa o serviço web.
então certifique-se de que o usuário tenha permissão para acessar o serviço da web
talvez o usuário seja o usuário do windows
e você pode obter o domínio a partir de: clique direito em "MyComputer" e propriedades o domínio é o nome do computador ou grupo de trabalho
0 para a resposta № 5
Sou testado assim:
CheckListService.CheckList chkSrvice = new CheckListService.CheckList() {
UseDefaultCredentials = true };