quinta-feira, 16 de outubro de 2014

SharePoint 2013 - Workflow suspenso: System.ApplicationException: HTTP 500



O fluxo de trabalho no SharePoint 2013 fica normalmente no estado suspenso com a mensagem de erro "System.ApplicationException: HTTP 500" se o fluxo está configurado para enviar e-mail(s) para um grupo do SharePoint e o email de saida não está configurado no SharePoint.

Mensagem de erro no interface:
RequestorId: <GUID>. Details: An unhandled exception occurred during the execution of the workflow instance. Exception details: System.ApplicationException: HTTP 500 {"Transfer-Encoding":["chunked"],"X-SharePointHealthScore":["0"],"SPClientServiceRequestDuration":["12"],"SPRequestGuid":["<GUID>"],"request-id":["<GUID>"],"X-FRAME-OPTIONS":["SAMEORIGIN"],"MicrosoftSharePointTeamServices":["15.0.0.4569"],"X-Content-Type-Options":["nosniff"],"X-MS-InvokeApp":["1; RequireReadOnly"],"Cache-Control":["max-age=0, private"],"Date":[" Oct 2014 11:42:51 GMT"],"Server":["Microsoft-IIS\/8.5"],"X-AspNet-Version":["4.0.30319"],"X-Powered-By":["ASP.NET"]} at Microsoft.Activities.Hosting.Runtime.Subroutine.SubroutineChild.Execute(CodeActivityContext context) at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)

Mensagem de error nos logs do SharePoint:


Exception occured in scope Microsoft.SharePoint.Utilities.SPUtility.SendEmail. Exception=System.Configuration.ConfigurationErrorsException: Exception of type 'System.Configuration.ConfigurationErrorsException' was thrown.     at Microsoft.SharePoint.Utilities.SPUtility.SendEmail_Client(EmailProperties properties)     at Microsoft.SharePoint.ServerStub.Utilities.SPUtilityServerStub.InvokeStaticMethod(String methodName, ClientValueCollection xmlargs, ProxyContext proxyContext, Boolean& isVoid)     at Microsoft.SharePoint.Client.ServerStub.InvokeStaticMethodWithMonitoredScope(String methodName, ClientValueCollection args, ProxyContext proxyContext, Boolean& isVoid)
Solução: Permitir a exibição das associações para todos os usuários do SharePoint ou utilizar um outro grupo.

Solução: Configurar email de saída para um farm do SharePoint 2013

Fontes:

Configure outgoing email for a SharePoint 2013 farm

[]

6 comentários:

  1. Bom dia
    Parabens pelo blog! ajudou muito a resolver uns incidentes aqui.
    Talves, voce possa me ajudar num problema que estou tendo.

    Configuramos diversos alertas (alerta de lista) e eles funcionam normalmente, os emails sao recebidos. Porem, ao utilizar o fluxo de trabalho para enviar um email, o fluxo muda pra cancelado e ocorre esse erro:

    RequestorId: e4f1009c-97d0-7630-c084-01efc17a9bf9. Detalhes: System.ApplicationException: HTTP 500 {"Transfer-Encoding":["chunked"],"X-SharePointHealthScore":["0"],"SPClientServiceRequestDuration":["6478"],"SPRequestGuid":["bd8a79ab-00b0-4f58-b1e7-51d3870ece71"],"request-id":["bd8a79ab-00b0-4f58-b1e7-51d3870ece71"],"X-FRAME-OPTIONS":["SAMEORIGIN"],"X-Content-Type-Options":["nosniff"],"X-MS-InvokeApp":["1; RequireReadOnly"],"MicrosoftSharePointTeamServices":["15.0.0.4420"],"Cache-Control":["max-age=0, private"],"Date":["Mon, 21 Dec 2015 16:12:10 GMT"],"X-AspNet-Version":["4.0.30319"],"X-Powered-By":["ASP.NET"]} em Microsoft.Activities.Hosting.Runtime.Subroutine.SubroutineChild.Execute(CodeActivityContext context) em System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) em System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)

    Alguma ideia de como contornar isso?

    ResponderExcluir
    Respostas
    1. Bom dia Kaio, fico feliz em ter ajudado! Os eventos na interface não ajudam muito na análise, execute o comando Merge-SPLogfile -path c:\wf_error.log -correlation bd8a79ab-00b0-4f58-b1e7-51d3870ece71 e disponibilize os eventos.
      Observação: A correlação do evento é o "SPRequestGuid" do evento.

      Abraços

      David

      Excluir
    2. David, desde ja, agradeço o auxilio.
      Ao tentar executar o comando tivemos o erro abaixo.:
      c:\wf_error.log : O termo 'c:\wf_error.log' não é reconhecido como nome de
      cmdlet, função, arquivo de script ou programa operável. Verifique a grafia do
      nome ou, se um caminho tiver sido incluído, veja se o caminho está correto e
      tente novamente.

      O estranho que os fluxos funcionam normalmente, somente para enviar email que ocorre o erro.

      Excluir
    3. Sem problemas :). O comando precisa ser executado no Powershell do SharePoint (Merge-SPLogfile -path c:\wf_error.log -correlation bd8a79ab-00b0-4f58-b1e7-51d3870ece71) e gera o log no caminho c:\wf_error.log.

      Excluir
  2. Meu caro, segue retorno do pwershell:
    PS C:\Users\administrator> Merge-SPLogfile -path c:\wf_error.log -correlation bd
    8a79ab-00b0-4f58-b1e7-51d3870ece71
    AVISO: O cmdlet não retornou nenhum registro no arquivo de log. Verifique os
    filtros ou o intervalo de tempo.

    ResponderExcluir
  3. O log, aparentemente já foi excluído. Reproduze o problema novamente e execute o mesmo comando alterando o parâmetro "Correlation" utilizando o SPRequestGuid do novo evento na interface.

    ResponderExcluir