Pergunta

Estou ativando um recurso usando o PowerShell e de vez em quando ele falha com o erro "Falha ao carregar o assembly do receptor".Parece estar reclamando porque algum serviço ou aplicativo não consegue encontrar a dll no GAC, porém eu verifiquei todas as vezes e a dll está sempre implantada corretamente no GAC.Meu script do PowerShell é executado assim:

  1. Desinstale todos os WSPS relevantes (removendo do GAC)
  2. Reiniciar:SPAdminV4, SPTimerV4, SPUserCodeV4 e IISReset
  3. Instale todos os WSPS relevantes, incluindo aquele que deve ser o destino do receptor de eventos.
  4. Reiniciar:SPAdminV4, SPTimerV4, SPUserCodeV4 e IISReset
  5. Ative o recurso (escopo do aplicativo da web)

Tentei pausar o script entre as etapas 3 e 4 e entre as etapas 4 e 5 para verificar se a DLL está presente e sempre está.Verifiquei se o recurso xml ReceiverAssembly está correto, mas não acho que esse seja o problema, pois funciona na maioria das vezes.

Consigo executar o script várias vezes com êxito e de repente ele falha.Existe algum serviço que preciso reciclar além de um iisreset?

Editar detalhes adicionais:

  • Existem 10 wsps, um dos quais contém um recurso com escopo de aplicativo da web.
  • Não espero muito tempo após a redefinição, pois pensei que a reciclagem estava concluída quando o iisreset retornou.
  • O erro ocorre quando o sharepoint tenta chamar o receptor de evento FeatureActivated personalizado em um dos wsps.
  • Rastreamento de pilha parcial (abreviado):System.ArgumentException:Falha ao carregar o assembly do receptor [assinatura completa do assembly do receptor] ou uma de suas dependências.O sistema não pode encontrar o arquivo especificado.System.IO.FileNotFoundException:Não foi possível carregar o arquivo ou assembly [assinatura completa do assembly do receptor]

editar:Adicionadas etapas de reciclagem de serviço.

(Não consigo postar o código exato porque o sistema está em uma rede restrita)

Foi útil?

Solução 2

Eu resolvi o problema.Parece que não há necessidade de eu redefinir o IIS ou SPADMINV4 durante a implantação.Removendo todas as referências a isso do meu Script PowerShell resolveu o problema.

Também devo observar que espera 5 segundos após redefinir spadminv4 antes de ativar o recurso também evitar o erro.

ref: http://blog.falchionconsulting.com/index.php/2011/04/Deploying-sharepoint-2010-Solução-package-using-powershell-revieised/

Outras dicas

Muitas vezes, isso ocorre porque o SPTimerV4 mantém uma referência em cache para sua solução .dll:s

tente fazer

net stop SPTimerV4
net start SPTimerV4

no PowerShell ou cmd quando você retraiu seu .wsp antes de reinstalá-los

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