Archive for the ‘Tips’ Category
Failed to initiate the upgrade sequence–SPUpgradeException–Erro ao atualizar do Microsoft SharePoint Foundation para o Microsoft SharePoint Server 2010 no Windows 7
Olá SharePointers,
Hoje passei por um erro ao tentar atualizar a versão do SharePoint da máquina. Estava instalado o SharePoint Foundation e foi instalado o SharePoint Server 2010.
O erro que logava no Event Viewer era esse:
Failed to initiate the upgrade sequence.
An exception of type Microsoft.SharePoint.Upgrade.SPUpgradeException was thrown. Additional exception information: Exception of type Microsoft.SharePoint.Upgrade.SPUpgrade was thrown.
Pesquisando um pouco, achei a solução:
Abra o Regedit, vá em HKLM\Software\Microsoft\Shared Tools\Web Server Extensions\14.0\WSS e altere a chave SetupType de SKU2SKU_UPGRADE para CLEAN_INSTALL.
Rode o Configuration Wizard novamente e aparecerá o erro abaixo:
An exception of type Microsoft.SharePoint.Upgrade.SPUpgradeException was thrown. Additional exception information: Failed to call GetTypes on assembly Microsoft.Office.Server.Search, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c. Could not load file or assembly ‘System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’ or one of its dependencies. The system cannot find the file specified.
Microsoft.SharePoint.Upgrade.SPUpgradeException: Failed to call GetTypes on assembly Microsoft.Office.Server.Search, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c. Could not load file or assembly ‘System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’ or one of its dependencies. The system cannot find the file specified.
at Microsoft.SharePoint.Upgrade.SPDelegateManager.RegisterAssembly(Dictionary`2 dictInitialType, Assembly asm, UInt32 nOrder)
at Microsoft.SharePoint.Upgrade.SPDelegateManager.get_InitialTypeDictionary()
at Microsoft.SharePoint.Upgrade.SPDelegateManager.GetDelegateTypes(Type tpObject)
at Microsoft.SharePoint.Upgrade.SPDelegateManager.GetDelegates(Object o)
at Microsoft.SharePoint.Upgrade.SPDelegateManager.GetUpgraders(Object o)
at Microsoft.SharePoint.Upgrade.SPUpgradeSession.NeedsUpgradeFalse(Object o)
at Microsoft.SharePoint.Administration.SPPersistedUpgradableObject.set_NeedsUpgrade(Boolean value)
at Microsoft.SharePoint.Administration.SPPersistedObject.BaseUpdate()
at Microsoft.Office.InfoPath.Server.Administration.FormsService.Update()
at Microsoft.SharePoint.PostSetupConfiguration.ServicesTask.InstallServiceInConfigDB(Boolean provisionTheServiceToo, String serviceRegistryKeyName)
at Microsoft.SharePoint.PostSetupConfiguration.ServicesTask.InstallServices(Boolean provisionTheServicesToo)
at Microsoft.SharePoint.PostSetupConfiguration.ServicesTask.Run()
at Microsoft.SharePoint.PostSetupConfiguration.TaskThread.ExecuteTask()
Isso significa que o MS Charts não está instalado em sua máquina e é necessário. Para instalá-lo, baixe aqui: http://www.microsoft.com/downloads/en/details.aspx?familyid=130F7986-BF49-4FE5-9CA8-910AE6EA442C&displaylang=en.
Depois de instalado, rode o Configuration Wizard novamente e Voilá!
Fica a Dica!
Botão da Ribbon chamar um código Server-Side–SharePoint 2010
Olá Pessoal,
Hoje vou dar uma dica que sempre acabo precisando: colocar um botão na Ribbon que chama um código Server-Side.
Então, vamos lá:
1- Clique no seu projeto com o botão direito e vá até Adicionar, Novo Item…
2 – Escolha Empty Element e dê um nome adequado.
3 – Seguindo o modelo do passo 1, adicione uma Classe que conterá seu código Server-Side:
4 – Adicione referência ao assembly System.Web:
5- Adicione o código abaixo na classe criada:
protected override void OnLoad(EventArgs e) { var postback = this.Context.Request["__EVENTTARGET"]; var arguments = this.Context.Request["__EVENTARGUMENT"]; if (postback != null && postback.Equals("MinhaAção")) { string[] ids = arguments.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (string id in ids) { } } }
6 – No Elements.XML, adicione o código abaixo:
<Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <CustomAction Id="RibbonDemo" RegistrationType="List" RegistrationId="10000" Location="CommandUI.Ribbon.ListView"> <CommandUIExtension> <CommandUIDefinitions> <CommandUIDefinition Location="Ribbon.ListItem.Manage.Controls._children"> <Button Id="Ribbon.ListItem.Manage.Controls.RibbonDemo" Alt="Minha Ação" Sequence="999" Image16by16="/_layouts/images/placeholder32x32.png" Image32by32="/_layouts/images/placeholder32x32.png" Command="RibbonDemo" LabelText="Minha Ação" TemplateAlias="o1" ToolTipTitle="Minha Ação" ToolTipDescription="Minha Ação"/> </CommandUIDefinition> </CommandUIDefinitions> <CommandUIHandlers> <CommandUIHandler Command="RibbonDemo" CommandAction="javascript:var context = SP.ClientContext.get_current(); var selectedItems = SP.ListOperation.Selection.getSelectedItems(context); var selectedItemsId = ''; for (index in selectedItems) { selectedItemsId = selectedItemsId + ',' + selectedItems[index].id; } __doPostBack('MinhaAção', selectedItemsId);" /> </CommandUIHandlers> </CommandUIExtension> </CustomAction> <Control Id="AdditionalPageHead" Sequence="90" ControlAssembly="$SharePoint.Project.AssemblyFullName$" ControlClass="" /> </Elements>
O código acima faz 2 coisas:
1 – Coloca o botão na Ribbon
2 – Adiciona o nosso controle ServerSideAction no Site.
OBS: A única coisa que precisamos ficar atento é com a propriedade ControlClass, que precisamos colocar o Namespace + Nome da Classe do Controle que criamos anteriormente.
Nesse caso, ficará assim: ControlClass="ExemploRibbon.ServerSideAction".
Agora, precisamos falar para o SharePoint que esse controle é seguro:
Clique no Empty Element do Botão, e na guia de propriedades, clique no botão “…” referente ao Safe Control Entries.
Clique em adicionar. A tela deverá ficar assim:
Após isso, tudo deverá estar funcionando corretamente. Só testar e colocar o código desejado na classe criada.
Se quiserem baixar a solução funcionando, podem clicar aqui: Download SharePoint Ribbon Demo.
É isso aí !!! Espero que essa dica ajude a todos os desenvolvedores que sofriam para conseguir fazer isso funcionar.
An exception of type System.ServiceProcess.TimeoutException was thrown
Instalando o Cumulative Update de Abril de 2012 para o SharePoint Server 2010, encontrei o seguinte problema na hora de rodar o Configuration Wizard:
Failed to initialize SharePoint Products and Technologies upgrade.
An exception of type System.ServiceProcess.TimeoutException was thrown. Additional exception information: Time out has expired and the operation has not been completed.
System.ServiceProcess.TimeoutException: Time out has expired and the operation has not been completed.
at System.ServiceProcess.ServiceController.WaitForStatus(ServiceControllerStatus desiredStatus, TimeSpan timeout)
at Microsoft.SharePoint.PostSetupConfiguration.ServiceHelper.Stop(String serviceName)
at Microsoft.SharePoint.PostSetupConfiguration.InitializeTask.StopServicesListedInRegistry(RegistryHelper registry)
at Microsoft.SharePoint.PostSetupConfiguration.InitializeTask.StopAllServices()
at Microsoft.SharePoint.PostSetupConfiguration.InitializeTask.PrepareForUpgrade()
at Microsoft.SharePoint.PostSetupConfiguration.InitializeTask.Run()
at Microsoft.SharePoint.PostSetupConfiguration.TaskThread.ExecuteTask()
Estava achando que era problema do Update, mas.. Não era.
No meu caso, o serviço do Sandboxed User Code estava "Finalizando" mas nunca terminava. Matei o processo utilizando o Task Manager e o Configuration Wizard passou a funcionar normalmente.
Pelo que vi, pode ser aleatório. Encontrei uma outra pessoa com o mesmo problema, mas era o serviço de Search (http://www.entwicklungsgedanken.de/2008/07/18/systemserviceprocesstimeoutexception-when-running-psconfig/).
One or more files in the restored site collection will exceed the maximum supported path length. Please select a shorter destination site address and try again.
Olá,
Fazendo um restore de um Site Collection, passei por uma situação que não esperava encontrar:
Isso significa que o Novo Path Total (Path + Nome do Arquivo) ultrapassava 260 caracteres que é o limite do SharePoint para diretórios. Ou seja, se você estava tentando restaurar o backup em uma url: /departamentos/teste departamento 1, somando o nome das pastas mais o nome do arquivo, acabou ultrapassando 260.
O pior, é que isso ocorre somente após fazer todo o restore e o SharePoint chamar a procedure proc_RenameSite. Ou seja, se der erro, todo o tempo que você ficou esperando é perdido!!!
Para resolver o problema, você tem 2 soluções:
1 – Alterar o nome original do arquivo
2 – Tentar fazer o restore em uma URL menor.
Para saber quais arquivos estão com dando problema, vocês podem rodar o script abaixo no SQL:
SELECT
LEN(DirName + N'/' + LeafName) AS Total,
DirName,
LeafName
FROM
Docs WITH (NOLOCK)
ORDER BY Total DESC
#Fica a Dica
Feature ‘d8d8df90-7b1f-49c1-b170-6f46a94f8c3c’ for list template ‘1104’ is not installed in this farm. The operation could not be completed
Olá,
O erro acima acontece porque o servidor não tem o template ProjectTrackingWorkspace instalado.
Para baixar o modelo, clique em: http://technet.microsoft.com/en-us/windowsserver/sharepoint/bb407286.aspx
OBS: Se você não tiver o Application Template Core instalado, instale-o primeiro: http://www.microsoft.com/en-us/download/details.aspx?id=5958
Erro: Windows Server Features or Role Services required by this product are not enabled ao instalar SharePoint 2010 no Windows Server 2012 RC
Olá SharePointers,
Estava tentando instalar o SharePoint 2010 no Windows Server 2012 RC e aparecia o erro abaixo:
Para resolver, baixe esse arquivo Hand.ServerManagerCmdEmul – Binaries, e coloque-o na pasta c:\windows\system32.
Após esse passo, a instalação vai funcionar perfeitamente!
Referência:
http://craiglussier.com/2012/03/01/install-sharepoint-2010-on-windows-server-8-beta/
http://gallery.technet.microsoft.com/sharepoint/SharePoint-2010-and-dee17600
Quick Tip: Como saber o tamanho ocupado pelos sites (Site Collections) SharePoint?
Olá ,
Para saber o tamanho ocupado por cada Site Collection do SharePoint, você pode usar cmdlet PowerShell abaixo:
Get-SPSite | select url, @{label="Tamanho";Expression={$_.usage.storage/1MB}} | Sort-Object -Descending -Property "Tamanho" | Format-Table –AutoSize
Boa sorte
The Given Key Was Not Present in the Dictionary – SharePoint 2010
Olá SharePointers,
Instalando uma farm SharePoint 2010, passei pelo seguinte cenário: Na etapa 3, do configuration Wizard dava erro e aparecia o texto abaixo:
An exception of type System.Collections.Generic.KeyNotFoundException was thrown. Aditional exception information: the given key was not present in the dictionary.
Para resolver isso, siga os passos:
- Abra a console Usuários e Computadores do Active Directory
- Procure a conta de serviço que você está tentando adicionar como conta de Administrador da Farm.
- Selectione Features Avançadas no Menu Visualizar.
- Abra as propriedades da conta desejada e clique na aba Segurança.
- Clique em Authenticated Users e marque a opção READ.
Rode o configuration wizard novamente!
Referência: http://support.microsoft.com/kb/2463865
Configurar Remote Blob Storage (RBS) no SharePoint 2010
Olá SharePointers,
Muitos possuem dúvidas de como instalar e configurar o RBS (Remote Blob Storage) no SharePoint Server 2010 e SQL Server.
Vamos as tips:
Não é possível habilitar o FILESTREAM em uma versão 32 bits do SQL rodando em um Sistema Operacional 64 bits.
Para habilitar, na instalação do SQL Server, basta ativar como na imagem abaixo:
Caso você já tenha o SQL Instalado, abra o SQL Configuration Manager, Clique em SQL Server Services, clique na instância que deseja configurar com o botão direito do mouse e escoolha Propriedades.
Na aba Filestream, configure como na imagem abaixo e clique em OK.
Abra o programa SQL Management Studio, e rode o seguinte código TRANSACT-SQL :
EXEC sp_configure filestream_access_level, 2 RECONFIGURE
Clique em Executar e depois Reinicie o serviço do SQL Server.
PRONTO! O SQL Server está pronto para receber o Remote Blob. Para saber mais sobre boas práticas, veja esse artigo: http://msdn.microsoft.com/en-us/library/cc645923.aspx.
A segunda etapa do arquivo é habilitar um armazenamento de remote blob para cada Content Database do SharePoint.
Para isso, abra o SQL Management Studio, escolha o Content Database necessário e rode as seguintes Queries:
ATENÇÃO!!! Lembre-se de alterar o nome do Banco WSS_Content para o seu banco de conteúdos e alterar a pasta c:\blobstore para a pasta de destino onde os arquivos serão armazenados.
use [WSS_Content] if not exists (select * from sys.symmetric_keys where name = N'##MS_DatabaseMasterKey##') create master key encryption by password = N'Admin Key Password !2#4'
use [WSS_Content] if not exists (select groupname from sysfilegroups where groupname=N'RBSFilestreamProvider') alter database [WSS_Content] add filegroup RBSFilestreamProvider contains filestream
use [WSS_Content]
alter database [WSS_Content]
add file (name = RBSFilestreamFile, filename =
'c:\Blobstore')
to filegroup RBSFilestreamProvider
Agora, em cada Servidor Web, faça o download do arquivo RBS_x64.msi disponível no link http://go.microsoft.com/fwlink/?LinkID=188395&clcid=0x409.
No primeiro servidor Web, faça o procedimento abaixo:
Rode o comando abaixo no prompt de comando. Lembre-se de alterar o nome do banco de dados “WSS_Content” e da Instância do Banco de dados “DBInstanceName”.
msiexec /qn /lvx* rbs_install_log.txt /i RBS.msi TRUSTSERVERCERTIFICATE=true FILEGROUP=PRIMARY DBNAME=”WSS_Content” DBINSTANCE=”DBInstanceName” FILESTREAMFILEGROUP=RBSFilestreamProvider FILESTREAMSTORENAME=FilestreamProvider_1
Para os próximos, faça:
Faça o download do arquivo RBS.msi disponível em http://go.microsoft.com/fwlink/?LinkID=188395&clcid=0x409.
Rode o comando abaixo. Lembre-se de alterar o nome do banco de dados “WSS_Content” e da Instância do Banco de dados “DBInstanceName”.
msiexec /qn /lvx* rbs_install_log.txt /i RBS.msi DBNAME=”WSS_Content” DBINSTANCE=”DBInstanceName” ADDLOCAL=Client,Docs,Maintainer,ServerScript,FilestreamClient,FilestreamServer
Repita o procedimento em todos os servidores restantes.
Último passo (e não menos importante) – Habilitar o RBS para cada Banco de dados de Conteúdo
Abra o SharePoint 2010 Management Shell.
Digite o comando abaixo:
$cdb = Get-SPContentDatabase <ContentDatabaseName> $rbss = $cdb.RemoteBlobStorageSettings $rbss.Installed() $rbss.Enable() $rbss.SetActiveProviderName($rbss.GetProviderNames()[0]) $rbss
Troque o ContentDatabaseName pelo nome do banco de dados de conteúdo que deseja alterar.
Algumas referências:
Install e Configure RBS: http://technet.microsoft.com/en-us/library/ee748631.aspx
Overview of RBS: http://technet.microsoft.com/en-us/library/ee748649.aspx
Plan for RBS: http://technet.microsoft.com/en-us/library/ff628583.aspx
Enable and Configure FILESTREAM: http://msdn.microsoft.com/en-us/library/cc645923.aspx
Isso aí SharePointers! Chegamos ao fim de mais um tutorial. Espero ter ajudado