Id. de artículo: 919085 - Última revisión: viernes, 16 de marzo de 2007 - Versión: 1.5

Mensaje de error cuando explora una página .aspx y el servicio de publicación World Wide Web está configurado para interactuar con el escritorio: "el compilador error con código de error 128"

Nota acerca de su sistema operativoEste artículo se aplica a un sistema operativo distinto al que usa. El contenido del artículo que puede que no sea importante para usted, se deshabilitará
importante Este artículo contiene información que muestra cómo para ayudar a reducir la configuración de seguridad o cómo desactivar las características de seguridad en un equipo. Puede realizar estos cambios para evitar un problema concreto. Antes de realizar estos cambios, le recomendamos que evalúe los riesgos asociados a esta solución en su entorno concreto. Si decide implementar esta forma de evitar el problema, tome las medidas adicionales oportunas para ayudar a proteger su sistema.

En esta página

Expandir todo | Contraer todo

Síntomas

Tenga en cuenta la situación siguiente. El servicio de publicación World Wide Web se configura en Microsoft Windows Server 2003 para interactuar con el escritorio. Inicia sesión una sesión de consola de forma local o remota. En este escenario, cuando explora una página .aspx que requiere compilación, puede recibir el siguiente mensaje de error:
Error de compilación
Descripción: Error durante la compilación de un recurso requerido para dar servicio a esta solicitud. Revise los detalles de error específicos siguientes y modifique su código fuente en consecuencia.

Mensaje de error del compilador: el compilador error con el código 128.

Causa

Este problema se produce porque el proceso de trabajo que intenta iniciar el proceso del compilador de Microsoft ASP.NET se está ejecutando bajo la identidad de servicio de red o bajo una cuenta que no está en el grupo de administradores. Cuando el proceso del compilador de ASP.NET intenta iniciar vbc.exe o csc.exe, la rutina de inicialización del proceso produce un error. Este error se produce porque una DLL dependiente falla durante su rutina de inicialización. Si cualquiera de los archivos DLL para un proceso de devolver un error de su rutina de inicialización, el sistema operativo se detiene el proceso de inicio y devuelve un código de error de 128 ( ERROR_WAIT_NO_CHILDREN ).

Solución

Para resolver este problema, utilice cualquiera de los métodos siguientes. Utilice el método que se adapte a su situación el mejor.

Método 1: Impedir que el servicio de publicación World Wide Web interactuar con el escritorio

Puede impedir que el servicio de publicación World Wide Web interactuar con el escritorio. Éste es el método preferido.

Nota De forma predeterminada, el servicio de publicación World Wide Web no está configurado para interactuar con el escritorio.

Para ello, siga estos pasos:
  1. Haga clic en Inicio , haga clic en Ejecutar , escriba cmd y, a continuación, haga clic en Aceptar .
  2. En el símbolo del sistema, escriba control admintools y, a continuación, presione ENTRAR.
  3. Haga doble clic en servicios .
  4. En el panel servicios , busque el Servicio de publicación World Wide Web .
  5. Haga clic con el botón secundario del mouse en publicación en World Wide Web servicio y a continuación, haga clic en Propiedades .
  6. Haga clic en la ficha Iniciar sesión .
  7. Haga clic para desactivar la casilla de verificación Permitir a los servicios interactuar con el escritorio .
  8. Haga clic en Aceptar .

Método 2: Cambiar la identidad del grupo de aplicaciones para la identidad LocalSystem

Advertencia Esta solución puede hacer que el equipo o su red sean más vulnerables a ataques de usuarios malintencionados o de software malintencionado como virus. Nos no recomendamos esta solución, pero son proporcionar esta información para que esta solución se puede implementar su propia discreción. Utilice esta solución bajo su responsabilidad.

Puede cambiar la identidad del grupo de aplicaciones a la identidad LocalSystem.

importante Sólo debe utilizar este método si se cumplen las condiciones siguientes:
  • La aplicación Web ASP.NET debe interactuar con el escritorio.
  • Comprender las implicaciones de seguridad de cambiar la identidad del grupo de aplicaciones a la identidad LocalSystem. Para obtener más información acerca de la cuenta sistema local y la cuenta servicio de red, consulte la sección "Aplicaciones como servicios NT" en el siguiente sitio Web de Microsoft Developer Network (MSDN):
    http://msdn2.microsoft.com/en-us/library/ms952392.aspx (http://msdn2.microsoft.com/en-us/library/ms952392.aspx)
Para ello, siga estos pasos:
  1. Haga clic en Inicio , haga clic en Ejecutar , escriba cmd y, a continuación, haga clic en Aceptar .
  2. En el símbolo del sistema, escriba control admintools y, a continuación, presione ENTRAR.
  3. Haga doble clic en Servicios de Internet Information Server (IIS) Manager .
  4. Expanda el nombre de equipo, expanda Grupos de aplicaciones , haga clic con el botón secundario del mouse en el nombre del grupo de aplicaciones que desea modificar y, a continuación, haga clic en Propiedades .
  5. Haga clic en la ficha identidad .
  6. Haga clic en predefinida y, a continuación, haga clic en Sistema Local .
  7. Haga clic en Aceptar .

Más información

ASP.NET no intenta compilar una página después de que se produce un error durante el proceso de compilación. El error se almacena en caché hasta que el proceso se recicla o hasta que se modifica la página o una de sus dependencias. Cuando el proceso de trabajo está vinculado a la estación de ventana Consola (Winsta0), el servicio de publicación World Wide Web agrega el identificador de seguridad (SID) para el grupo IIS_WPG a la lista de control de acceso (ACL) para el objeto Winsta0. A continuación, el Web Publishing servicio inicia procesar el w3wp.exe.

Cuando un usuario inicia en o desactivar una sesión de consola, el Winlogon proceso vuelve a generar la lista de control de acceso para el Winsta0 objeto y quita el SID de IIS_WPG de la lista. Los procesos secundarios iniciados por el proceso de trabajo (w3wp.exe) puede no iniciarse. Estos procesos incluyen los procesos de csc.exe y vbc.exe.
Cuando un servicio no está configurado para interactuar con el escritorio, el proceso utiliza una estación de ventana no interactiva que no se ve afectado iniciando una sesión de usuario en la consola.

Nota Puede iniciar sesión en la consola en Windows Server 2003 por ninguno de los métodos siguientes:
  • Inicie sesión en el equipo de forma interactiva.
  • Utilice la aplicación cliente de escritorio remoto. Por ejemplo, escriba mstsc.exe /console en el símbolo del sistema.
  • Utilice una aplicación de terceros que tiene acceso a la sesión de consola.

La información de este artículo se refiere a:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft Visual Studio .NET 2002 Professional
  • Microsoft Visual Studio .NET 2002 Enterprise Architect
  • Microsoft Visual Studio .NET 2002 Enterprise Developer
  • Microsoft Visual Studio .NET 2002 Academic Edition
  • Microsoft Visual Studio .NET (2002), Enterprise Architect Edition SP1
  • Microsoft Visual Studio .NET 2003 Professional
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual Studio .NET 2003 Academic Edition
Palabras clave: 
kbmt kbtshoot kbprb KB919085 KbMtes
Traducción automáticaTraducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 919085  (http://support.microsoft.com/kb/919085/en-us/ )