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 Core

Có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:

  1. 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>

  2. Ejecute IISRESET para reiniciar los servicios de IIS.

  3. Vaya a una página en el sitio web de IIS.

MaximumPasswordAge

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 view o el uso de , , new use etc. 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).