Pregunta

Tengo una SPJOBDEFINITION (WSS) que se ejecuta cada hora. Basado en algunos valores, y si se cumple, agrega un elemento a la lista de calendario. Esta lista de calendario tiene un receptor de eventos conectado al evento ItemAdded.

Cuando el trabajo se desencadena y agrega el artículo, las partes del código se ejecutan. Lo que quiero decir es que no le escriba a la evento y parece tener problemas para leer desde el archivo web.config.

Si agrego manualmente un artículo a la lista de calendario, usando mis credenciales, todo funciona bien. Es decir, tengo eventos en el evento y los artículos se leen en el archivo web.config.

Puedo ver dónde está agregando el elemento en la lista de calendario. He intentado agregar la cuenta del sistema a los grupos con control total y todavía tengo un problema.

¿Hay algo más que tengo que mirar para que esto funcione? He revisado el usuario de la piscina y su servicio de red; Desde entonces los he agregado al grupo también.

No estoy seguro de dónde se vea.

gracias

Actualizado (este es el código que utilizo para escribir al eventoLog)

try
{
  System.Security.Principal.WindowsImpersonationContext wic = System.Security.Principal.WindowsIdentity.Impersonate(IntPtr.Zero);
  EventLog.WriteEntry(source, message, type);
  wic.Undo();
}
catch (Exception)
{
}

¿Fue útil?

Solución

La escritura en el evento podría deberse a los permisos de Windows faltantes.

El trabajo del temporizador se ejecuta en un servicio de Windows que no tiene una web.config.Un receptor de eventos se ejecuta en cualquier proceso que cause el evento.Entonces, si intenta leer la web.config del proceso actual, fallará.

Si intenta llegar al sistema de archivos para leer el web.config, puede volver a ser los permisos de Windows.

Agregar usuarios a los grupos de SharePoint No puede ayudarlo con el acceso a EventLog o los archivos, estos son objetos de Windows, no los objetos de SharePoint.

Cuando se ejecuta desde un trabajo de temporizador, el Impersonate(IntPtr.Zero); no cambia nada.Se hace pasar por la cuenta del proceso que ya es la que se está ejecutando.

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