segunda-feira, 18 de novembro de 2013

Microsoft Workflow Manager - (400) Bad Request, 401.2 - Unauthorized



Os eventos abaixo ocorrem normalmente se o Workflow Manager foi reinstalado e/ou mal configurado:

1.

[...]
Microsoft.Workflow.Client.InvalidRequestException: The scope '/SharePoint/default/60b9a4e6-c9c4-46eb-b23e-fd2f63479c8d/76cb7003-0d67-4168-a4db-3698fc642d22' has no workflows under it. HTTP headers received from the server - ActivityId: d951e13a-d566-47e0-b7d4-ef6fe76d2ec0. NodeId: contoso. Scope: /SharePoint/default/60b9a4e6-c9c4-46eb-b23e-fd2f63479c8d/76cb7003-0d67-4168-a4db-3698fc642d22. Client ActivityId : a7aa559c-ffb6-6089-58d6-173f140b4e1a. ---> System.Net.WebException: The remote server returned an error: (400) Bad Request.
[...]

2.

[...]
Microsoft.Workflow.Client.AuthenticationException: A response was returned that did not come from the Workflow Manager. Status code = 401:  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  <html xmlns="http://www.w3.org/1999/xhtml">  <head>  <title>IIS 8.0 Detailed Error - 401.2 - Unauthorized</title>
[...]

A solução depende da causa, entretanto existem duas formas para resolver isto:

1. Re-registrar o Workflow Manager, por meio do seguinte comando:

Register-SPWorkflowService –SPSite http://intranet.contoso.com –WorkflowHostUri http://wfserver:12291 –AllowOAuthHttp -scopename SharePoint -force

2. Este script recria o escopo, altera as permissões e registra o WFM (deveria ser executado, se o evento numero 2 continua a ocorrer):

$ScopeUri = http://SERVER:12291/SharePoint
$Scope = SharePoint
$mycredentials = Get-Credential("DOMAIN\WFAPPPOOLUSER")
$SecurityConfig = New-Object Microsoft.Workflow.Client.Security.WindowsSecurityConfiguration("All Users")
$SecurityConfig.WorkflowAdminGroupName = "Users"

Get-SPWorkflowServiceApplicationProxy | Remove-SPServiceApplicationProxy
Remove-WFScope –ScopeUri $ScopeUri
Register-SPWorkflowService –SPSite "http://intranet.contoso.com" –WorkflowHostUri $ScopeUri –AllowOAuthHttp -scopename $Scope -force
Set-WFScopeSecurity -ScopeUri $ScopeUri -Credential $mycredentials -SecurityConfiguration $SecurityConfig

Register-SPWorkflowService http://technet.microsoft.com/pt-br/library/jj663115.aspx
Remove-WFScope http://msdn.microsoft.com/pt-br/library/windowsazure/jj193255(v=azure.10).aspx
Set-WFScopeSecurity http://msdn.microsoft.com/pt-br/library/windowsazure/jj193229(v=azure.10).aspx

[]


quinta-feira, 14 de novembro de 2013

SharePoint 2013 - CU de Outubro 2013 versão 14.0.7108.5000 em vez de 14.0.7110.5000 na Administração Central

A versão do SharePoint 2013 mudou para 14.0.7108.5000 em vez de 14.0.7110.5000 informado no artigo da atualização KB 2825786.

A explicação é simples, os dlls da busca do produto mudaram para 14.0.7110.5000 e os do SharePoint para 14.0.7108.5000. Conforme seguintes screenshots:

Search:

SharePoint:

Be calm :)

[]

Project Server 2013 - Falha de Modo de Exibição Falha ao carregar o modo de exibição. [...]

Evento: "Falha de Modo de Exibição Falha ao carregar o modo de exibição. [...]"

em seguida: "Você não tem permissões para exibir qualquer projeto."

Inglês: "The View Failed to Load", and next one is "You do not have permissions to view".


Esse comportamento ocorre se o modo de exibição default for deletado. Existem duas formas para resolver isto.

1. Aperte Ok, escolhe um outro modo e aperte F5...

2. Ou execute as seguintes queries no banco de dados do PWA:

a.) Identifique o modo de exibição desejado (WVIEW_UID):

SELECT WVIEW_UID, WVIEW_NAME, WVIEW_DESCRIPTION, WVIEW_TYPE, WTABLE_UID
FROM pub.MSP_WEB_VIEW_REPORTS
ORDER BY WVIEW_TYPE, WVIEW_NAME

b.) Identifique o RES_UID do usuário com o comportamento indesejado:

SELECT * FROM pub.MSP_RESOURCES

c.) altere o modo de exibição baseado nas informações das consultas anteriores:

UPDATE pub.MSP_WEB_USERPROPERTIES
SET PROP_STRING=’Valor WVIEW_UID do passo 1’
WHERE RES_UID=’Valor RES_UID do passo 2’ AND PROP_NAME='ViewUidProjectCenterJSGridControl'

Pronto, boa sorte :)

[]

terça-feira, 5 de novembro de 2013

O acesso a bibliotecas do SharePoint utilizando o Windows Explorer está lento - WebDAV

Isto é um problema clássico da integração do SharePoint. O Windows interage nesse cenário com o IIS por meio do serviço local Webclient.

A lentidão ocorre normalmente no primeiro acesso, visto que Windows inicia o serviço por demanda - assim que abrimos uma biblioteca por meio do Windows Explorer. Você deveria alterar o "start up type" do serviço Webclient para "automatic" (>services.msc) e reiniciar o Windows.




About WebDAV


[]



Update:

Existe um White Paper da Microsoft que abrange todos os produtos envolvidos, segue o link:


[]

Features órfãs

w3wp.exe (0x0B7C) 0x130C SharePoint Foundation General 75fe Verbose Failed to determine definition for Feature with ID 'ad999ace-9999-9999-x9z9-999999999999'.  Skipping this feature for element querying consideration.



Features órfãs podem causar uma certa lentidão. Você poderá remover as referências por meio da ferramenta “Feature Admin”.

Trying to store a checked out item (sites/default.aspx) in the object cache. This may be because the checked out user is accessing the page, or it could be that the SharePoint system account has the item checked out.

Trying to store a checked out item (sites/default.aspx) in the object cache.  This may be because the checked out user is accessing the page, or it could be that the SharePoint system account has the item checked out.  To improve performance, you should set the portalsuperuseraccount property on the web application.

Este evento ocorre se o usuário “Super Reader” e “Super User” estão na configuração default. 
Estes usuários são responsável pelo cache dos objetos do SharePoint. Você precisa criar dois usuários e configurar eles no SharePoint como “Super Reader” e “Super User”.


Eu prefiro PowerShell para essa configuração, já tem um script pronto e a explicação do mesmo no artigo. E.g. 
 
$wa = Get-SPWebApplication -Identity "<WebApplication>"
$wa.Properties["portalsuperuseraccount"] = "<SuperUser>"
$wa.Properties["portalsuperreaderaccount"] = "<SuperReader>"
$wa.Update()

[]

sábado, 2 de novembro de 2013

Livro eletrônico gratuito: Microsoft Project Server 2010 Administrator's Guide




O livro da versão 2010 um "must read" para todos os administradores do SharePoint e futuros administradores do Project Server. 

A guia abrange todas as configurações possíveis do produto, como a configuração dos recursos, permissões, OLAP cubes e fluxos entre outros.


[]

Livro eletrônico gratuito: Microsoft Project Server 2013 Administrator's Guide




O livro é um "must read" para todos os administradores do SharePoint e futuros administradores do Project Server. 

A guia abrange todas as configurações possíveis do produto, como a configuração dos recursos, permissões, OLAP cubes e fluxos entre outros.


[]

sexta-feira, 1 de novembro de 2013

Critical Unknown SQL Exception 297 occurred.

OWSTIMER.EXE (0x1EF0) 0x17D4 SharePoint Foundation Database 5586 Critical Unknown SQL Exception 297 occurred. Additional error information from SQL Server is included below.  The user does not have permission to perform this action.


Solução:

Execute a seguinte query na instância do SQL do SharePoint. Você precisará mudar o usuário paro o usuário que executa o serviço do SharePoint Timer, conforme imagem.

GRANT VIEW SERVER STATE TO "contoso\administrator"




[]

A publicação de um fluxo de trabalho de aprovação (out of the box) usando o SharePoint Designer resulta em "Unexpected error associating workflow"

Acompanhado pela mensagem abaixo, os IDs variam:


(0, 0) Activity 'ID11544' validation failed: Cannot resolve Activity 'ID11528'.)
(0, 0) Activity 'ID11547' validation failed: Cannot resolve Activity 'ID11531'.)
(0, 0) Activity 'ID11520' validation failed: Cannot resolve Activity 'ID11501'.)
(0, 0) Activity 'ID11523' validation failed: Cannot resolve Activity 'ID11504'.)

Você precisará salvar o fluxo como arquivo em qualquer lugar e mudar o extensão do arquivo para .cab .

Nós precisamos extrair o arquivo workflow.xoml e renomear a extensão para xml. Você poderá abrir o arquivo com qualquer editor de texto.

Uma vez aberto procure pelo ID da atividade

Search "ID11528" (1 hit in 1 file)
 Line 446:           <ns0:AddToArrayListActivity Value="{ActivityBind ID11545,Path=ReturnValue}" x:Name="ID11544" ReturnValue="{ActivityBind ID11528,Path=ReturnValue}" />

As atividades pertencem a um passo especifico do fluxo, você deveria seguir a raiz até o inicio (para cima :), para identificar o passo do fluxo que cause o comportamento. 
No meu caso:

<ns2:OnTaskProcessCompleted Description="Quando o Processo da Tarefa For Concluído" x:Name="ID7">

Recrie o passo do fluxo identificado no SharePoint Designer utilizando as mesmas configurações/atividades e publica ele no SharePoint.

[]

quinta-feira, 31 de outubro de 2013

Merge-SPLogfile

As vezes temos certos problemas para capturar os logs ULS que nos precisamos, principalmente quando lidamos com n servidores do SharePoint em um ambiente só.

Merge-SPLogfile é um comando poderoso que consolida todos os logs em um arquivo só.

O uso:

Existem varias formas, a forma mais simples salva todos os logs que foram gerados nos últimos 60 minutos;

Merge-SPLogFile –Path “C:\Logs\MergedLogs.log” –Overwrite

Eu pessoalmente prefiro a seguinte forma

  1. Configurar o ULS para o modo detalhado: Set-SPLogLevel -EventSeverity Verbose -TraceSeverity Verbose
  2. Reproduzir o comportamento que necessita da análise
  3. Recuperar a configuração do ULS: Clear-SPLogLevel
  4. Consolidar os logs: Merge-SPLogFile –Path “C:\Logs\MergedLogs.log” –Overwrite
Referencias:


[]

Mover todos os bancos de dados do SharePoint para um outro servidor SQL.

Pelo meu conhecimento, o SharePoint não suporta a mudança do nome do servidor SQL que está hospedando o banco de dados da configuração do ambiente. Isto em todas as versões.

Você deve seguir estes passos para mover todos bancos:


O passo mais importante é criação do alias no SQL. Porque nosso novo servidor vai responder, obvio que nos precisamos tirar o antigo servidor.

  1. Verifique suas permissões, você deve ser administrador local e db_owner;
  2. >Start, >Todos os programas, >expanda  Microsoft SQL Server, > expanda Ferramentas de Configuração e >SQL Server Configuration Manager;
  3. Expanda Configuração do SQL Native Client, clique com o botão direito em Aliases e Novo Alias;
  4. No campo Nome do Alias, insira o  nome da instância original do SQL Server; no protocolo seleciona TCP/IP; no Servidor insira o nome do servidor que está hospedando os bancos; OK.

[]

Livro eletrônico gratuito: Introducing Windows Azure for IT Professionals




O Windows Azure é cada dia mais importante na vida dos profissionais do SharePoint. Muitas empresas migram os ambientes para o nuvem.
Este livro descreve numa forma detalhada os recursos e vantagens do Azure.


 PDF here
 Companion Contenthere
 Mobi para Kindlehere
 ePubhere

Fonte: http://blogs.msdn.com/b/microsoft_press/archive/2013/10/01/free-ebook-introducing-windows-azure-for-it-professionals.aspx?loc=zTS1z&prod=zWAz&tech=zOttechz&prog=zPressz&type=zBLz&media=zBKz&country=zUSz