Pergunta

Eu tenho um SPJobDefinition (WSS) que é executado a cada hora.Com base em alguns valores, e se atendidos, adiciona um item à lista de calendário.Esta lista de calendário possui um receptor de eventos anexado ao evento ItemAdded.

Quando o trabalho é acionado e adiciona o item, partes do código são executadas.O que quero dizer é que ele não grava no log de eventos e parece ter problemas ao ler o arquivo web.config.

Se eu adicionar manualmente um item à lista de calendários, usando minhas credenciais, tudo funcionará bem.Ou seja, tenho eventos no log de eventos e os itens são lidos no arquivo web.config.

Posso ver onde a conta do sistema está adicionando o item na lista Calendário.Tentei adicionar a conta do sistema aos grupos com controle total e ainda estou tendo problemas.

Há algo mais que preciso examinar para que isso funcione?Verifiquei o usuário do pool e seu serviço de rede;Desde então, eu os adicionei ao grupo também.

Não tenho certeza de onde mais procurar.

Obrigado

Atualizado (este é o código que uso para escrever no log de eventos)

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

Solução

A gravação no log de eventos pode ocorrer devido à falta de permissões do Windows.

O trabalho de timer é executado em um serviço do Windows que não possui um web.config.Um receptor de evento é executado em qualquer processo que esteja causando o evento.Portanto, se você tentar ler o web.config do processo atual, ele falhará.

Se você tentar acessar o sistema de arquivos para ler o web.config, poderão ser as permissões do Windows novamente.

Adicionar usuários a grupos do SharePoint não pode ajudá-lo com acesso ao EventLog ou arquivos; esses são objetos do Windows e não objetos do SharePoint.

Ao executar a partir de um trabalho de timer, o Impersonate(IntPtr.Zero); não está mudando nada.Ele personifica a conta do processo que já está em execução.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top