quarta-feira, 21 de maio de 2014

Error occurred in deployment step 'Add Solution': Error: Cannot add the specified assembly to the global assembly cache: XXX.dll

Este erro ocorre no VS (Visual Studio) ao tentarmos fazer Deploy.

Error occurred in deployment step 'Add Solution': Error: Cannot add the specified assembly to the global assembly cache: XXX.dll

Como resolver:

1) Vá ao GAC (C:\windows\assembly) e remova a DLL manualmente. [remove DLL manually from GAC]
2) Realize deploy novamente [do deploy again!]

Problema: TimerJob habilitado e rodando para todos os Web App do Server

Olá Amigos,

Hoje venho compartilhar uma boa dica com vocês.

Possuo um Timer Job super pesado e lento, ao verificar o histórico de execução dos job no CA (Central Administration > Job History ) percebi que o mesmo estava sendo executado para cada um dos WebApps (Web Applications) do server e é óbvio que este não era o comportamento que eu desejava.

A solução é bastante simples, existe uma propriedade na Feature de Ativação do Timer Job que é responsável pela ativação/vinculação automática do Timer Job a todos os WebApp, basta desativa-la e após vincula-la manualmente ao WebApp Correto.

Na imagem abaixo é possível visualizar a propriedade que deve ser alterada. Por default seu valor é True, devemos passar para False para que a Ativação fique em Manual.



Após fazer o deploy do projeto, basta voltar ao CA e Naveguar até "Gerenciar o Aplicativo Web" (Central Administration -> Application Management -> Manage Web Application)

Selecione seu Web Application e vá em "Gerenciar Recursos" (Manage Features)

Localize a feature de ativação do Timer Job e clique em "Ativar" (Activate)


Era isso ;)

Abraço,
Leonardo

Fontes:
http://www.codeproject.com/Tips/634208/Create-and-Deploy-Custom-Timer-Job-Definition-in-S

http://www.splessons.com/2013/12/create-a-timer-job-in-sharepoint-2013/#SPLessonPhoto[myGallery]/13/


segunda-feira, 19 de maio de 2014

Questão sobre SPDailySchedule e sua propriedade BeginHour

Olá PessoALL,

Hoje foi questionado sobre como "setar" a hora inicial de um SPDailySchedule para as 22 horas.

Para quem não sabe, o SPDailySchedule é utilizado, principalmente, para "setarmos" o horário de agendamento de um Timer Job.

Normalmente temos no código algo como isto:

            //Configura o Timer Job para rodar todos os dias de 1 hora da manhã.
            SPDailySchedule dailySchedule = new SPDailySchedule();
            dailySchedule.BeginHour = 01;
            dailySchedule.EndHour = 01;
            dailySchedule.EndMinute = 30;

 Então surge a dúvida, é 01 am ou 01pm...

A resposta é bem simples na verdade, a propriedade BeginHour é 24 horas, portanto se quisermos rodar o job as 22, basta "setar" o número 22 ;)


            //Configura o Timer Job para rodar todos os dias de 22 horas
            SPDailySchedule dailySchedule = new SPDailySchedule();
            dailySchedule.BeginHour = 22;
            dailySchedule.EndHour = 22;
            dailySchedule.EndMinute = 30;

Bem simples e indolor ;)

Abraço,
Leonardo

quinta-feira, 15 de maio de 2014

Tratando problemas de performance e logs gigantes

A apresentação do Link abaixo é muito interessante. 

Ótimo recurso para quem está enfrentando lentidão em WP customizadas em seu ambiente SharePoint. 

Entender a relação SPRequest e SPSite/SPWeb é a chave para esta jornada de otimização de webparts. 

Muito útil para quem tem erros do tipo:

 Potentially excessive number of SPRequest objects (XX) currently unreleased on thread X

http://pt.slideshare.net/kcponce/sharepoint-underground-unmanaged-code-and-sharepoint-internals

Outro link interessante para o mesmo problema é:

http://blog.meligo.be/2013/10/sprequest-things-i-couldnt-find-about-it/

Existe uma centena de outras dicas que te auxiliarão a cuidar deste caso, mas isto é assunto para outro momento.

Por hoje é só pessoal =D