Archive

Archive for the ‘Uncategorized’ Category

AuthenticationException: Authentication failed, see inner exception

CENÁRIO:

Olá!

De uns tempos pra cá meu Mac (OSX) parou de funcionar a funcionalidade de rodar aplicações “localhost” com HTTPS embutido no ASP.NET Core.

Pra contornar, estava montando o Kestrel com certificado auto assinado gerado por mim mesmo (https://docs.microsoft.com/pt-br/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-2.2#kestrel-options), mas o outro jeito era tão mais fácil e simples que resolvi procurar e há um jeito de resolver! J

ERRO:

Deixando default, e tentando acessar a URL “localhost” com HTTPS obtinha a seguinte mensagem de erro:

fail: Microsoft.AspNetCore.Server.Kestrel[0]

      Uncaught exception from the OnConnectionAsync method of an IConnectionAdapter.

System.Security.Authentication.AuthenticationException: Authentication failed, see inner exception. —> Interop+AppleCrypto+SslException: Internal error

   — End of inner exception stack trace —

SOLUÇÃO:

Para resolver, há um comando do próprio dotnet para corrigir os certificados e voltar a funcionar tudo perfeitamente:

dotnet dev-certs https

No meu mac, não resolveu de primeira. Tive que limpar os certificados antes com este comando:

dotnet dev-certs https –clean

e depois:

dotnet dev-certs https

Pronto!

Tudo funcionando perfeitamente novamente. 🙂

Abraço!

 

Advertisements

Como juntar (merge) vários arquivos CSV em um único arquivo CSV

December 12, 2018 1 comment

CENÁRIO:

Olá!

Por várias vezes precisei consolidar arquivos CSV em um único arquivo para facilitar análises de dados e indicadores. Quase sempre realizava o bom e velho copy/paste em um novo arquivo.

Mas, chegou o derradeiro dia de realizar essa operação com mais de 20 arquivos…

SOLUÇÃO:

Pra facilitar, coloque todos os seus arquivos CSV em uma pasta separada.

artigocsv1

Agora vá no “Terminal” (Mac OS) ou “prompt de comando” (Windows) e use o respectivo comando para juntar os arquivos em um único arquivo novo.

Dica: Se os seus arquivos possuem “cabeçalho” (headers), remova-os antes, pois o comando irá juntar todos os arquivos e os cabeçalhos ficarão no meio das linhas.

Mac:

cat *.csv > novoarquivo.csv

artigocsv2

artigocsv3

Windows:

copy *.csv novoarquivo-win.csv

artigocsv4artigocsv5

Abraço!

 

Como buscar informações de status do Workflow no SharePoint Online (365)

November 28, 2018 Leave a comment

CENÁRIO:

Olá!

Nas versões antigas (on-premises) do SharePoint Server é bem fácil obter o status do workflow bastando apenas adicionar uma coluna na view que contém o nome do Workflow.

Entretanto, no SharePoint Online (365) é um pouco diferente. Ainda temos a coluna do workflow (WorkflowColumnStatus), mas ela fica “em branco”. Como fazer para verificar, programaticamente, o status do workflow que foi desenvolvido dentro de um SharePoint Add-in?

ERRO:

Colunas em branco:

wfkcolumn

SOLUÇÃO:

Utilizando o SharePoint CSOM ou JSOM (Javascript Object Model) é possível instanciar o WorkflowServicesManager e obter as informações do workflow.

wfkmanageinstance

Em texto:

var workflowServicesManager = new WorkflowServicesManager(ctx, ctx.Web);

 

// connect to the instance service

var workflowInstanceService = workflowServicesManager.GetWorkflowInstanceService();

 

// get all instances

var workflowInstances = workflowInstanceService.EnumerateInstancesForListItem(listId, itemId);

ctx.Load(workflowInstances, i => i.Include(f => f.Id, f => f.LastUpdated, f => f.Status));

ctx.ExecuteQuery();

foreach (var instance in workflowInstances)

{

try

{

if (instance.Status.ToString() != “Completed”)

{

Console.WriteLine(“{0} – {1} – {2}”,

instance.Id.ToString(),

instance.LastUpdated,

instance.Status.ToString());

 

}

}

catch (Exception ex)

{

_telemetry.TrackException(ex);

}

}

. J

Abraço!

 

Alto consumo CPU e memória noderunner.exe – SharePoint 2013

February 1, 2018 Leave a comment

CENÁRIO:

Olá!

Apesar de ter montando uma máquina virtual de desenvolvimento com um hardware razoável (gastar menos $$) sofri com consumo excessivo de CPU e memória em um servidor com SharePoint 2013, SQL Server 2008 R2 e Visual Studio 2017 instalado.

ERRO:

Não é um erro, mas é um comportamento pesado para um ambiente de desenvolvimento.

Picture1

SOLUÇÃO:

Analisando um pouco o comportamento do servidor para descobrir o “vilão” da jogada… notei que o processo “noderunner.exe” estava consumindo muita memória e CPU considerável.

Picture2

Noderunner.exe é um componente do serviço de busca do SharePoint 2013.

Para ambientes de Dev, podemos reduzir o consumo desse serviço. Principalmente se não estamos usando a busca do SharePoint 2013 no desenvolvimento. Inclusive, desabilitar o serviço.

No caso, eu precisava de um “pouco” de busca… :/

Então, utilizei os passos a seguir para reduzir o impacto da busca no consumo de recursos do servidor.

  1. Rode o cmdlet Powershell abaixo para reduzir o consumo de CPU

Set-SPEnterpriseSearchService -PerformanceLevel Reduced

  1. Altere o parâmetro “memoryLimitMegabytes” do arquivo “exe.config”. Por padrão, a configuração é “0” – ilimitado.

C:\Program Files\Microsoft Office Servers\15.0\Search\Runtime\1.0\noderunner.exe.config

Picture3

  1. Reinicie o serviço de busca do SharePoint com o cmdlet a seguir

Restart-Service SPSearchHostController

Picture4

Agora o servidor ganhou “algum” fôlego.

Informações adicionais: https://docs.microsoft.com/en-us/powershell/module/sharepoint-server/Set-SPEnterpriseSearchService?view=sharepoint-ps

Reduced: Total number of threads = number of processors, Max Threads/host = number of processors

Partly Reduced: Total number of threads = 4 times the number of processors , Max Threads/host = 16 time the number of processors

Maximum: Total number of threads = number of processors

Abraço!

 

The virtual machine cannot restart. The current virtual machine state is RoleStateUnknown

Olá! Smile

Cenário:

Uma dica rápida… que quase me fez chorar… rs

Montei uma VM SharePoint 2010 no Windows Azure Virtual Machine Preview… até aí beleza… Massss… resolvi desligar a máquina para aumentar a memória. Desliguei e pra ligar de novo?

ERRO:

The virtual machine cannot restart. The current virtual machine state is RoleStateUnknown.

Não liga nem com reza brava! Horas de trabalho indo pro limbo… 😥

É um problema da plataforma, e provavelmente será corrigido posteriormente, mas e minha VM? rs

SOLUÇÃO:

Achei uma dica no fórum do Windows Azure americano:

http://social.msdn.microsoft.com/Forums/en-US/WAVirtualMachinesforWindows/thread/5b7063d7-51b4-4258-bff5-2269dd385f85

Mas, resumindo o procedimento…

1. Delete a sua VM (sim, apague!)

2. Cria uma nova VM > From Gallery e escolha o disco da VM que você acabou de deletar.

3. A VM vai voltar e ligar sozinha. Você vai perder a URL anterior (por que não vai conseguir criar com o mesmo DNS, pois já em uso anteriormente por você mesmo – não testei esperar pra ver se o nome fica livre depois de um tempo…) e também os Endpoints.

Tem um esquema de exportar e importar as configurações no link… talvez isso mantenha as configurações anteriores.

É isso aí, até mais! Smile

Abraço!

2011 in review

January 11, 2012 Leave a comment

The WordPress.com stats helper monkeys prepared a 2011 annual report for this blog.

Here’s an excerpt:

The concert hall at the Sydney Opera House holds 2,700 people. This blog was viewed about 16,000 times in 2011. If it were a concert at Sydney Opera House, it would take about 6 sold-out performances for that many people to see it.

Click here to see the complete report.

Categories: Uncategorized

Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack

November 7, 2011 Leave a comment

Olá! Alegre

Cenário:

Algumas coisinhas que acontecem quando temos variáveis diferentes ao nosso Portal!

Nesta ocasião o Portal será exposto na Internet, e usuários com permissão somente leitura irão acessar o Portal.

Nos primeiros testes tudo Ok, mas algumas páginas usam determinados recursos que precisam de permissão elevada para rodar.

ERRO:

Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack.

Ao tentar usar uma funcionalidade bem simples, como SPWeb.Webs, a excetion acima é gerada.

SOLUÇÃO:

Para solucionar o problema podemos forçar nosso código para rodar com permissões elevadas. O SharePoint nos ajuda com isso com o método:

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsecurity.runwithelevatedprivileges.aspx – SPSecurity.RunWithElevatedPrivileges Method

public static void RunWithElevatedPrivileges(

SPSecurity..::..CodeToRunElevated secureCode)

Então basta instanciar nossos objetos usando este método! Algo assim:

SPSecurity.RunWithElevatedPrivileges(delegate()

{

using (SPSite site = new SPSite(web.Site.ID))

{

// seu código aqui!

}

});

Seu código irá rodar com a conta do Application Pool, a qual possui permissões de SiteCollection Administrator em todas as sitecollections hospedadas nessa Application Pool.

Abraço!

Categories: Uncategorized