Error de "ResourceNotFound(404)" y pide que el DSC Tire errores de servidor

Se aplica a: Windows Server 2016

Síntomas


Suponga que configura un servidor de extracción de la configuración de estado deseado (DSC) en Windows Server 2016 como un servicio web que se ejecuta en el servidor Web a través de los servicios de Internet Information Server (IIS).

En este escenario, la aplicación de servidor de extracción DSC responde a las solicitudes entrantes mediante la generación de un mensaje de error "ResourceNotFound(404)". Esto es especialmente cierto cuando se recicla el grupo de aplicaciones o el grupo de aplicaciones se recicla automáticamente debido a la configuración de IIS. Además, puede anotarse un 623 de evento en el registro de aplicación:

Nombre de registro: aplicaciónOrigen: ESENTId. de suceso: 623Categoría de tarea: Administrador de transacciones deNivel: ErrorDescripción:PSDSCPullSever (10204) de w3wp: el almacén de versión para esta instancia (0) ha alcanzado su tamaño máximo de 32Mb. Es probable que una transacción de larga duración es impidiendo la limpieza del almacén de versión y produzca el aumento de tamaño. Se rechazarán las actualizaciones hasta que la transacción de larga duración ha sido completamente confirma o se deshace.

Causa


Este problema puede tener cualquiera de las siguientes causas.

Causa 1

La base de datos del motor de almacenamiento Extensible (ESE) área del almacén de versiones es que se agote. Esto puede deberse a una transacción grande cuando se recicla el grupo de aplicaciones.

Causa 2

Más de un proceso de trabajo está configurado para el grupo de aplicaciones "PSWS". DSC utiliza el archivo de base de datos de Devices.edb de de , y este archivo se debe abrir en modo exclusivo (sólo un proceso a la vez puede tener acceso a la base de datos). Por lo tanto, otros procesos de trabajo no pueden tener acceso al archivo, y los errores de las búsquedas de base de datos.

Causa 3

Cuando recicla un proceso de W3WP.exe, IIS inicia el proceso nuevo antes de que deje de proceso anterior. El nuevo proceso no tiene acceso a la base de datos mientras continúa el proceso antiguo a su propietario.

Solución


Para solucionar este problema, siga los pasos para la resoluciónde adecuada.

Solución 1: Agotado la base de datos de ESE área del almacén de versiones

Configurar el tamaño del almacén de versión. Para ello, siga estos pasos:

  1. Instale la actualización acumulativa para Windows Server 2016 para sistemas basados en x64 (KB4480977).
  2. Copie el archivo Microsoft.Powershell.DesiredStateConfiguration.Service.dll desde la ubicación siguiente:
    C:\Windows\System32\WindowsPowerShell\v1.0\Modules\PSDesiredStateConfiguration\PullServer
  3. Pegue el archivo en la siguiente ubicación (o la carpeta configurada si se cambió la ruta de acceso raíz):
    C:\inetpub\PSDSCPullServer\bin\
  4. Configurar el tamaño del almacén de versión agregando los parámetros MaxVerPages y PreferredVerPages en el archivo Web.config de la aplicación. Nota: El archivo Web.config se encuentra en la siguiente ubicación (o la carpeta personalizada):
    C:\inetpub\PSDSCPullServer
     

    Por ejemplo, si MaxVerPages se establece en 24576, el tamaño del almacén de versión se establece como sigue:

    24576 * 16 = 393 MB en modo de 32 bits

    24576 * 32 = 786 MB en modo de 64 bits

    El valor recomendado para PreferredVerPages es 80 por ciento del valor de MaxVerPages . Si no se especifican valores personalizados, se utilizan los siguientes valores predeterminados:

    MaxVerPages = 1024

    PreferredVerPages = 1024

    Por ejemplo, establezca los siguientes valores.

    < / managementOdata > < appSettings >   < Agregar clave = "MaxConcurrentRequests" value = "10000" / >   < Agregar clave = "MaxRequestsPerTimeslot" value = "10000" / >   < Agregar clave = "TimeslotSize" value = "1" / >   <!--->   < Agregar clave = "dbprovider" value = "ESENT" / >   < Agregar clave = valor "dbconnectionstr" = "C:\Program Files\WindowsPowerShell\DscService\Devices.edb" / >   <!--->   <!--   < Agregar clave = "dbprovider" value="System.Data.OleDb" / >   < Agregar clave = "dbconnectionstr" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source = C:\Program Files\WindowsPowerShell\DscService\Devices.mdb;" / >   -->   < Agregar clave = valor "ConfigurationPath" = "C:\Program Files\WindowsPowerShell\DscService\Configuration" / >   < Agregar clave = valor "ModulePath" = "C:\Program Files\WindowsPowerShell\DscService\Modules" / >   < Agregar clave = valor "RegistrationKeyPath" = "C:\Program Files\WindowsPowerShell\DscService" / > < Agregar clave = "MaxVerPages" value = "24576" / >   < Agregar clave = "PreferredVerPages" value = "19600" / > < / appSettings >

  5. Guardar los cambios y, a continuación, reinicie IIS.

Solución 2: más de un proceso de trabajo está configurado para el grupo de aplicaciones "PSWS"

El número de procesos de trabajo IIS se restablece en 1. Para ello, siga estos pasos:

  1. Abra el Administrador de IIS y, a continuación, abra el nodo Grupos de aplicaciones .
  2. Haga PSWSy, a continuación, haga clic en Configuración avanzada.
  3. En la sección del Modelo de proceso , establezca el Máximo de procesos de trabajo en 1.

Resolución 3: El nuevo proceso no puede tener acceso a la base de datos cuando IIS recicla un proceso W3WP.exe

Utilice la opción Deshabilitar Overlapped de reciclaje . Para ello, siga estos pasos:

  1. Abra el Administrador de IIS y, a continuación, abra el nodo Grupos de aplicaciones .
  2. Haga PSWSy, a continuación, haga clic en Configuración avanzada.
  3. En la sección reciclaje , establezca Deshabilitar superpuesto reciclaje en True.

Referencias


Para obtener más información acerca de ESE, consulte el siguiente artículo de Microsoft Docs:

Motor de almacenamiento extensible

Para obtener más información acerca de la configuración de almacén de versiones y cómo supervisar el uso, consulte el siguiente artículo del Blog del equipo de servicios de directorio:

El almacén de versiones llamado y están todos fuera de depósitos