Se produce un error en el acceso a recursos remotos cuando se solicita a través de IIS
Este artículo le ayuda a resolver el problema que puede producirse al solicitar acceso a recursos remotos a través de Internet Information Services (IIS) 7.5, 8 o 8.5.
Versión del producto original: Internet Information Services 7.5, 8, 8.5
Número KB original: 2672809
Síntomas
En IIS 7.5, se produce uno de los siguientes problemas:
Problema 1
Se produce un error en el código de aplicación que tiene acceso a los recursos en otro servidor. Por ejemplo, se produce un error en el código similar al siguiente que usa HttpWebRequest:
WebRequest req = WebRequest.Create("http://contoso.com/somepage.aspx");
req.UseDefaultCredentials = true;
req.PreAuthenticate = true;
req.Credentials = CredentialCache.DefaultCredentials;
Cuando se ejecuta este código, puede producirse un error de excepción similar al siguiente:
Tipo de excepción: WebException
Mensaje de excepción: el servidor remoto ha devuelto un error: (401) No autorizado.
en System.Net.HttpWebRequest.GetResponse()
en ASP.somepage_aspx. Page_Load(Remitente de objetos, EventArgs e)
en System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
en System.Web.UI.Control.LoadRecursive()
en System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Nota
El ejemplo de código anterior es solo un ejemplo de cómo se puede producir el problema. También puede ocurrir de otras maneras, como usar System.IO para obtener acceso a recursos remotos.
Problema 2
Después de reiniciar los servicios IIS y enviar una solicitud a la aplicación web, se producirá un mensaje de error similar al siguiente:
Error HTTP 500.19: error interno del servidor
No se puede obtener acceso a la página solicitada porque los datos de configuración relacionados de la página no son válidos.
Información de error detallada
Módulo : IIS Web CoreCódigo de error: 0x80070005
Error de configuración: no se puede leer el archivo de configuración debido a permisos insuficientes
Archivo config : \ \ ?\UNC\path\wwwroot\web.config
Dirección URL solicitada: http://localhost:80/Mysite
Nota
Estos problemas pueden empezar a producirse sin ningún motivo y se pueden resolver temporalmente reiniciando el servidor IIS.
Causa
Microsoft ha confirmado que se trata de un problema en la sección Versión del producto original de este artículo.
Solución
Para resolver estos problemas, vea Users cannot access an IIS-hosted website after the computer password for the server is changed in Windows 7 or in Windows Server 2008 R2.
Este problema se puede reproducir siguiendo los pasos siguientes:
Desde un símbolo del sistema administrativo, ejecute el siguiente comando donde se encuentra el nombre de dominio del servidor IIS en
<domainname>formato netbios o FQDN:nltest.exe /sc_change_pwd:<domainname>Ejecute
IISRESETpara reiniciar los servicios de IIS.Vaya a una página en el sitio web de IIS.
Qué probar
Algunos detalles adicionales que ayudarán a identificar y solucionar estos problemas:
- IIS está configurado para tener acceso al contenido de un recurso compartido UNC o el código está accediendo al contenido de un recurso compartido UNC.
- Todo funciona bien, pero luego deja de funcionar en un momento aparentemente aleatorio.
- Un seguimiento de netmon mostrará que NTLM se usa para tener acceso al contenido UNC en lugar de Kerberos.
- La asignación de una unidad
net viewo el uso de , ,new useetc. seguirá funcionando. - Solo se resolverá un reinicio del servidor, pero empezará a suceder de nuevo más adelante. (Los clientes suelen creer que comienza en un momento aleatorio).