Pregunta

Me he encontrado con un problema varias veces en las que he desarrollado un trabajo de temporizador personalizado, y quiero que los administradores de mi colección de sitios administren el cronograma de este trabajo con una página de aplicación personalizada, pero sigo encontrando obstáculos relacionados con la seguridad.

Dado que Timerjobs son objetos infantiles de SpwebApplication, se almacenan en la base de datos de configuración. Si ha configurado su granja correctamente de tal manera que el usuario del grupo de aplicaciones para su aplicación web de contenido no tenga acceso de escritura a la base de datos de configuración, no puede crear nuevas TimerJobDefinitions a partir del código que se ejecuta en su aplicación web de contenido. Una mala solución/pirateo sería elevar los permisos de la base de datos para el usuario de su grupo de aplicaciones en la base de datos de configuración. Un mejor enfoque sería mover la página de administración de programas a la administración central, porque la cuenta de la grupa de aplicaciones de administración central puede escribir en la base de datos de configuración, pero luego perdemos el punto: ¡quiero que los administradores de mi colección de sitios puedan administrar el horario!

La única solución alternativa que se me ocurre es tener otro TimerJob que encueste algún tipo de cola (por ejemplo, una lista de SharePoint en la colección de mi sitio) para que los nuevos TimerJobs creen, y lo crea si se ha agregado un elemento a esa cola desde adentro. la aplicación web de contenido utilizando la página de administración de programación personalizada.

Mi pregunta es, ¿hay otra forma que sea eficiente y elegante?

¿Fue útil?

Solución

Esta es básicamente la misma pregunta que la Automatización de la colección del sitio pregunta. Estás en una solución, usando una cola. Otro enfoque podría ser tener un servicio web en CA que pueda llamar desde sus aplicaciones web.

/WW

Licenciado bajo: CC-BY-SA con atribución
scroll top