2010-07-19 19 views
12

Tengo un sitio web .NET 2.0 (VB) ejecutándose en mi IIS6 (XP Pro SP2) y .NET 3.5 (configurado como .NET2 en la pestaña ASP.NET de IIS, por supuesto)) hosting un servicio web ASMX.Falló la solicitud con el estado HTTP 401: no autorizado

En Chrome, puedo llamar al ASMX e invocar los métodos web con éxito. Sin embargo, al llamar a los métodos web en código, desde el sitio web .NET 2.0 me sale:

La solicitud con el estado HTTP 401: no autorizado.

¿Cómo puedo evitar esto?

Respuesta

19

Debe configurar las credenciales en su aplicación cuando inicializa el objeto webService.

Algo así como webService.UseDefaultCredentials = true

Esto establecerá las credenciales de la solicitud para el usuario actual de ejecutar la aplicación.

+0

Esto es para el cliente creado en VB/C# .. ¿qué pasa con Java, decir que necesito conectar a este servicio web a través de la aplicación móvil. En ese caso, no puedo obtener las credenciales predeterminadas. – rDroid

+0

ahorraste mucho tiempo. Gracias. – DelphiLearner

+0

Dios mío. Hemos tenido código en nuestro sitio ASP.NET sin este ajuste "UseDefaultCredentials" durante años, y siempre ha funcionado bien. Ayer, se aplicó un parche de seguridad de Microsoft. De repente recibimos un error "401 no autorizado" cada vez. Agregar esta línea de código solucionó el problema ... realmente extraño. –

1

En IIS 7, habilite la autenticación anónima y podrá depurar.

3
webService.UseDefaultCredentials = true 

Esto funcionó para mí.

0

im am prueba de esta manera:

CheckListService.CheckList chkSrvice = new CheckListService.CheckList() { 
    UseDefaultCredentials = true }; 
+2

¿Puedes explicar ** por qué ** esto funciona? – rayryeng

2

puede utilizar esto:

webservice.UseDefaultCredentials = true; 

si no funciona, utilice el código de abajo en lugar del código anterior

webservice.Credentials = new NetworkCredential("userName", "password", "domain"); 
webservice.PreAuthenticate = true; 

nota: la contraseña de usuario y dominio es la credencial de usuario del usuario que el acceso al servicio web

así que asegúrese de que el usuario tiene permiso para acceder al servicio web

tal vez el usuario es el usuario de Windows

y usted puede obtener el dominio de: haga clic derecho en "Mi Computadora" y propiedades el dominio es el nombre del equipo o grupo de trabajo

Cuestiones relacionadas