.NET crea una tarea progtwigda en el servidor falla con E_ACCESSDENIED

Tengo un sitio web ASP.NET (en C #) que toma los datos del usuario y luego intenta crear una tarea progtwigda de Windows. Por supuesto, esto funciona muy bien en la máquina DEV, pero no se ejecuta en el servidor. Estoy intentando averiguar qué permisos se requieren en el usuario de ASPNET (o usuario web anónimo) para crear tareas.

El error es:

Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) Stacktrace: at MyScheduler.NewWorkItem(String TaskName, Guid& rclsid, Guid& riid, Object& obj) at MyScheduler.CreateTask(String name) 

He hecho algunas búsquedas, y la resolución sugerida es usar el indicador “impersonate” de web.config para forzar que la aplicación se ejecute como un usuario con permisos suficientes, a diferencia de la cuenta ASPNET que puede no tener esos permisos.

Ejemplo:

    

Desafortunadamente, esto no parece resolver el problema. De la documentación que leí, esto debería ejecutarse como el usuario web anónimo, pero parece que el usuario no tiene suficientes permisos.

Modifiqué la configuración para especificar un usuario de dominio específico que resulta ser un administrador en la máquina. Ejemplo:

    

Al hacer esto, la aplicación pudo crear con éxito la tarea progtwigda de Windows. Entonces, obviamente, con el conjunto correcto de permisos de Windows 2003 puedo lograr que la aplicación funcione como lo hace en el entorno de desarrollo. Sin embargo, no estoy dispuesto a colocar las credenciales de usuario de la cuenta del administrador de la red o de la máquina en texto sin formato en un archivo Web.config.

¿Alguien sabe qué permisos se deben establecer exactamente para que la cuenta ASPNET se comporte como se desea?

EDITAR: La API de Win32 se está utilizando para crear tareas progtwigdas.

En lugar de preocuparse por los permisos de usuario de ASPNET, ¿su proceso interno le permitiría crear una cuenta específica de la máquina y proporcionar las credenciales allí?

He podido resolver mi problema particular, aunque no completamente. Todavía no he identificado los derechos exactos necesarios para crear y ejecutar tareas progtwigdas, pero lo siguiente parece funcionar:

  1. Agregue a Web.config
  2. Agregue el usuario IUSR (que es el usuario con el que se ejecutará la aplicación usando suplantación) al grupo “Operadores de copia de seguridad”.

Esto le da a la aplicación acceso a la carpeta Tareas progtwigdas para que puedan crear y ejecutar la tarea.

Tuvimos un problema adicional, que era que las tareas intentaban ejecutarse como la cuenta del sistema local. Desafortunadamente, solo los administradores parecen poder asignar la cuenta del sistema local como el usuario en ejecución, por lo que necesitamos suplantarnos como una cuenta de administrador, no como un operador de respaldo para que nuestro código funcione correctamente.

¿Estás escribiendo algo en el registro de eventos? Es posible que su componente (que está alojado en IIS supongo?) No tenga acceso para escribir algo en el registro de eventos.

Esto es simplemente una conjetura ~ hace un tiempo, me he enfrentado a un problema similar, y lo he resuelto de esta manera:

Hacer clic

Otra opción es flashear el BIOS en el servidor.