Todos os sistemas envolvidos pelo SharePoint criam uma oportunidade para o uso dos caracteres não suportados. O que é permitido no SharePoint não é permitido no SQL e o que é permitido no Project Server não é permitido no AD.
Até a posição do caracter pode determinar se o caracter é suportado ou não. Por exemplo o caracter _ é invalido no AD se o ID do usuário inicia com ele, porém é aceitado em qualquer outro lugar no ID....
Seguem os caracteres não suportados para cada tecnologia envolvida:
1. SharePoint
(~, #, %, &, *, {}, \, :, <>, /, +, |, “)
2. SQL Server
/ \ : [ ] . =
3. NTFS
" / \ * ? < > | :
4. LDAP
( ) \ NUL
Considerando a informação acima, podemos chamar de "Best Practices" evitar o uso dos seguintes caracteres no SharePoint:
/ " ; : < > | [ ] , . ' ? ~ ` ! $ % ^ & * ( ) - + = { }
As limitações do SharePoint - http://technet.microsoft.com/en-us/library/ff919564(v=office.14).aspx
O sistema de arquivos NTFS - http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29
Abraços
sexta-feira, 28 de fevereiro de 2014
quarta-feira, 26 de fevereiro de 2014
SharePoint 2013 - lançamento do SP1
O service pack
numero um foi liberado, seguem os links/KBs.
Service Pack 1 para Microsoft SharePoint Server
2013 (KB2817429)http://support.microsoft.com/kb/2817429
Service Pack 1 para Microsoft SharePoint Foundation
2013 (KB2817439)
Service Pack 1 para Microsoft Project Server 2013
(KB2817434) http://support.microsoft.com/kb/2817434
Service Pack 1 para Microsoft SharePoint Server
2013 Language Pack (KB2817438) http://support.microsoft.com/kb/2817438
Service Pack 1 para Microsoft Office Web Apps
Server (KB2817431) http://support.microsoft.com/kb/2817431
Service Pack 1 para Microsoft Office 2013
(KB2817430) 32/64-Bit Edition http://support.microsoft.com/kb/2817430
Essa planilha contem detalhes dos SPs
Boa atualização!
[]
segunda-feira, 24 de fevereiro de 2014
SharePoint - Sys.WebForms.PageRequestManagerServerErrorException: An unexpected error occured.
O evento descrito ocorreu na edição de uma pagina no SharePoint, conforme abaixo:
Evento no UI (User Interface):
"Sys.WebForms.PageRequestManagerServerErrorException: An unexpected error occured."
Evento nos logs do SharePoint:
w3wp.exe (0x182C) 0x2720 SharePoint Foundation Runtime tkau Unexpected System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) at Microsoft.SharePoint.Library.SPRequest.GetListsWithCallback(String bstrUrl, Guid foreignWebId, String bstrListInternalName, Int32 dwBaseType, Int32 dwBaseTypeAlt, Int32 dwServerTemplate, UInt32 dwGetListFlags, UInt32 dwListFilterFlags, Boolean bPrefetchMetaData, Boolean bSecurityTrimmed, Boolean bGetSecurityData, Boolean bPrefetchRelatedFields, ISP2DSafeArrayWriter p2DWriter, Int32& plRecycleBinCount) at Microsoft.SharePoint.SPListCollection.EnsureListsData(Guid webId, String strListName) at Microsoft.SharePoint.SPListCollection.Undirty() at Microsoft.SharePoint.SPBaseCollection.GetEnumerator() at Microsoft.SharePoint.SPWeb.GetCatalog(SPListTemplateType typeCatalog) at Microsoft.SharePoint.Publishing.WebControls.MediaWebPart.get_WebPartAdderId() at Microsoft.SharePoint.Publishing.WebControls.InsertMediaRibbonButton.RegisterRequiredScripts() at Microsoft.SharePoint.Publishing.WebControls.InsertMediaRibbonButton.OnPreRender(EventArgs e) at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Solução / Causa:
Acima ocorre normalmente se os grupos default do SharePoint foram deletados / alterados. Nesse caso aqui "Leitores do Recurso de Estilo" que eu recriei. Você pode editar a pagina assim que você recriou o(s) grupo(s).
Grupos padrão do SharePoint no SharePoint Server
[]
Evento no UI (User Interface):
"Sys.WebForms.PageRequestManagerServerErrorException: An unexpected error occured."
Evento nos logs do SharePoint:
w3wp.exe (0x182C) 0x2720 SharePoint Foundation Runtime tkau Unexpected System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) at Microsoft.SharePoint.Library.SPRequest.GetListsWithCallback(String bstrUrl, Guid foreignWebId, String bstrListInternalName, Int32 dwBaseType, Int32 dwBaseTypeAlt, Int32 dwServerTemplate, UInt32 dwGetListFlags, UInt32 dwListFilterFlags, Boolean bPrefetchMetaData, Boolean bSecurityTrimmed, Boolean bGetSecurityData, Boolean bPrefetchRelatedFields, ISP2DSafeArrayWriter p2DWriter, Int32& plRecycleBinCount) at Microsoft.SharePoint.SPListCollection.EnsureListsData(Guid webId, String strListName) at Microsoft.SharePoint.SPListCollection.Undirty() at Microsoft.SharePoint.SPBaseCollection.GetEnumerator() at Microsoft.SharePoint.SPWeb.GetCatalog(SPListTemplateType typeCatalog) at Microsoft.SharePoint.Publishing.WebControls.MediaWebPart.get_WebPartAdderId() at Microsoft.SharePoint.Publishing.WebControls.InsertMediaRibbonButton.RegisterRequiredScripts() at Microsoft.SharePoint.Publishing.WebControls.InsertMediaRibbonButton.OnPreRender(EventArgs e) at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Solução / Causa:
Acima ocorre normalmente se os grupos default do SharePoint foram deletados / alterados. Nesse caso aqui "Leitores do Recurso de Estilo" que eu recriei. Você pode editar a pagina assim que você recriou o(s) grupo(s).
Grupos padrão do SharePoint no SharePoint Server
[]
terça-feira, 18 de fevereiro de 2014
SharePoint - Hora do SharePoint permanece no horário de verão
Bom, esse artigo chega um pouco tarde de qualquer forma espero que ajuda! O horário de verão está definido no arquivo timezone.xml. SharePoint não altera o horário de verão em uma versão pre-SP2 porque o governo brasileiro aprovou um decreto que determina o horário de verão até 2019 recentemente.
Existem duas formas para resolver isso. Eu recomendo aplicar a opção um porque alterações nos arquivos de configuração podem gerar futuros problemas, porém a escolha depende do seu cenário.
UPDATE: As atualizações não atualizam o horário de verão no SharePoint, adicionarei em breve mais detalhes!
1. Aplique a atualização do Windows KB2863058 e em seguida o SP2 no SharePoint 2010 - KB2687453 ou KB2687452 caso o Project Server esteja instalado.
2. Altere o arquivo timezone.xml (c:\program files\common files\microsoft shared\web server extentions\14\config\).
a.) Abre o arquivo em um editor de texto e localize as seguintes linhas:
<TimeZone ID="8" Name="(UTC-03:00) Brasilia" Hidden="FALSE">
<Bias>180</Bias>
<StandardTime>
<Bias>0</Bias>
<Date>
<Month>2</Month>
<Day>4</Day>
<Hour>23</Hour>
<Minute>59</Minute>
<Second>59</Second>
<Milliseconds>999</Milliseconds>
<DayOfWeek>6</DayOfWeek>
[]
Existem duas formas para resolver isso. Eu recomendo aplicar a opção um porque alterações nos arquivos de configuração podem gerar futuros problemas, porém a escolha depende do seu cenário.
UPDATE: As atualizações não atualizam o horário de verão no SharePoint, adicionarei em breve mais detalhes!
2. Altere o arquivo timezone.xml (c:\program files\common files\microsoft shared\web server extentions\14\config\).
a.) Abre o arquivo em um editor de texto e localize as seguintes linhas:
<TimeZone ID="8" Name="(UTC-03:00) Brasilia" Hidden="FALSE">
<Bias>180</Bias>
<StandardTime>
<Bias>0</Bias>
<Date>
<Month>2</Month>
<Day>4</Day>
<Hour>23</Hour>
<Minute>59</Minute>
<Second>59</Second>
<Milliseconds>999</Milliseconds>
<DayOfWeek>6</DayOfWeek>
b.) Altere <Day>4</Day> para
<Day>3</Day> (terceiro domingo).
Você precisará deletar o cache da configuração do SharePoint para aplicar essa alteração imediatamente, conforme artigo - SharePoint - PowerShell script para limpar o cache da configuração.
Update: As atualizações do Windows não influenciam no SharePoint nesse comportamento especifico... a ultima atualização que deveria ter resolvido acima é seguindo o "Centro de Ajuda e Suporte para Horário de Verão" a atualização cumulativa do agosto de 2011.
O arquivo timezone.xml não está listado nas atualizações anteriores e não vai ser listado nas atualizações futuras....
Eu recomendo a controlar a configuração antes da mudança no ano que vem, visto que o horário de verão termina no ano 2015 no quarto domingo de mês fevereiro, conforme tabela abaixo:
Resumindo: Teremos uma tarefa administrativa a mais no ano que vem (também no SP 2013, visto que a configuração é a mesma).
O arquivo timezone.xml não está listado nas atualizações anteriores e não vai ser listado nas atualizações futuras....
Eu recomendo a controlar a configuração antes da mudança no ano que vem, visto que o horário de verão termina no ano 2015 no quarto domingo de mês fevereiro, conforme tabela abaixo:
Ano
|
Data de final do horário de verão
|
Domingo numero
|
Data de início do horário de verão
|
Domingo numero
|
2013
|
Domingo, 17 de Fevereiro, 00:00
|
3
|
Domingo, 20 de Outubro, 00:00
|
3
|
2014
|
Domingo, 16 de Fevereiro, 00:00
|
3
|
Domingo, 19 de Outubro, 00:00
|
3
|
2015
|
Domingo, 22 de Fevereiro, 00:00
|
4
|
Domingo, 18 de Outubro, 00:00
|
3
|
2016
|
Domingo, 21 de Fevereiro, 00:00
|
3
|
Domingo, 16 de Outubro, 00:00
|
3
|
2017
|
Domingo, 19 de Fevereiro, 00:00
|
3
|
Domingo, 15 de Outubro, 00:00
|
3
|
2018
|
Domingo, 18 de Fevereiro, 00:00
|
3
|
Domingo, 21 de Outubro, 00:00
|
3
|
2019
|
Domingo, 17 de Fevereiro, 00:00
|
3
|
Domingo, 20 de Outubro, 00:00
|
3
|
Resumindo: Teremos uma tarefa administrativa a mais no ano que vem (também no SP 2013, visto que a configuração é a mesma).
"Vertrauen ist gut Kontrolle ist besser" (Confiar é bom, controlar é melhor)
Update 02/2015: O artigo http://support.microsoft.com/kb/888253/en menciona que o tag <Day> é o contador das semanas e representa o dia da transição do horário de verão para o horário normal. O dia de transição no caso do Brasil é o domingo e o tag <Day> deve ter o valor 3 no ano 2015.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
<Day>n</Day> represents the nth week of the month when standard time or daylight saving time starts, where n is a number that represents the transition day. If the transition day occurs on a Sunday, the value "1" indicates the first Sunday of the month. The value "2" indicates the second Sunday of the month, and so on. The value "5" indicates the last Sunday of the month.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Update 02/2015: O artigo http://support.microsoft.com/kb/888253/en menciona que o tag <Day> é o contador das semanas e representa o dia da transição do horário de verão para o horário normal. O dia de transição no caso do Brasil é o domingo e o tag <Day> deve ter o valor 3 no ano 2015.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
<Day>n</Day> represents the nth week of the month when standard time or daylight saving time starts, where n is a number that represents the transition day. If the transition day occurs on a Sunday, the value "1" indicates the first Sunday of the month. The value "2" indicates the second Sunday of the month, and so on. The value "5" indicates the last Sunday of the month.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TimeZone Element (Regional Settings)
History Element (Regional Settings)
How to manually update the DST period for a time zone definition in Windows SharePoint Services by modifying the Timezone.xml file
[]
domingo, 16 de fevereiro de 2014
SharePoint 2010 - Atualização cumulativa 02/2014
sexta-feira, 14 de fevereiro de 2014
Workflow Manager - Failed to query the Oauth S2S metadata endpoint
Eu configurei esses dias um novo ambiente para desenvolver fluxos de
trabalho e encontrei um comportamento interessante.
Observação: Eu entendo abaixo como workaround e não recomendo a seguir esses
passos em um ambiente de produção.
O cenário é seguinte: Web Application configurado para utilizar http e o
Workflow Manager (WFM) para não aceitar conexões http.
1. Registrando o WFM no SharePoint resulta em seguinte evento no
Powershell:
Register-SPWorkflowService -SPSite "http://sp2013dev/"
-WorkflowHostUri "https://sp2013dev.contoso.com:12290" -force
Register-SPWorkflowService : Failed to query the OAuth S2S metadata
endpoint
at URI 'http://sp2013dev/_layouts/15/metadata/json/1'. Error
details: 'The
metadata endpoint responded with an error. HTTP status code:
Forbidden.'. HTTP
headers received from the server - ActivityId:
d5911e15-e529-469b-887a-24629551f543. NodeId: SP2013DEV. Scope:
/SharePoint.
Client ActivityId : 3b09edcf-2fee-4ea8-98b0-699c58fba14e.
At line:1 char:1
+ Register-SPWorkflowService -SPSite "http://sp2013dev/"
-WorkflowHostUri
"https:/ ...
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~
+ CategoryInfo :
InvalidData: (Microsoft.Share...WorkflowService:
RegisterSPWorkflowService) [Register-SPWorkflowService],
InvalidRequestExc
eption
+ FullyQualifiedErrorId :
Microsoft.SharePoint.WorkflowServices.PowerShell
.RegisterSPWorkflowService
Nos logs do
SharePoint o seguinte evento:
02/13/2014 05:30:41.01 PowerShell.exe
(0x17E0) 0x002C SharePoint Foundation PowerShell 6tf2 High Microsoft.Workflow.Client.InvalidRequestException:
Failed to query the OAuth S2S metadata endpoint at URI 'http://sp2013dev/_layouts/15/metadata/json/1'.
Error details: 'The metadata endpoint responded with an error. HTTP
status code: Forbidden.'. HTTP headers received from the server -
ActivityId: 71ac11da-2767-4d34-b9fd-0537e08c0bf0. NodeId: SP2013DEV. Scope:
/SharePoint. Client ActivityId : 05cdfb77-c6c3-4526-9686-1e09bf084eee. --->
System.Net.WebException: The remote server returned an error: (400) Bad
Request. at
Microsoft.Workflow.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)
at
Microsoft.Workflow.Client.HttpGetResponseAsyncResult`1.End(IAsyncResult result)
at Microsoft.Workflow.Client.ClientHelpers.SendRequest[T](HttpWebRequest
request, T content) --- End of inner exception stack trace ---
at
Microsoft.Workflow.Client.ClientHelpers.SendRequest[T](HttpWebRequest request,
T content) at Microsoft.Workflow.Client.WorkflowManagementClient.SendRequest[T](HttpWebRequest
request, T content) at
Microsoft.Workflow.Client.ScopeManager.PublishScopeInternal(ScopeDescription
description, String[] pathSegments) at Microsoft.SharePoint.WorkflowServices.WorkflowServerPairingContext.EnsureFarmScope(Boolean
configureOAuth) at
Microsoft.SharePoint.WorkflowServices.PowerShell.RegisterSPWorkflowService.InternalProcessRecord()
at Microsoft.SharePoint.PowerShell.SPCmdlet.ProcessRecord() 05cdfb77-c6c3-4526-9686-1e09bf084eee
Todos os eventos indicaram problemas no acesso do endpoint
"http://sp2013dev/_layouts/15/metadata/json/1" e realmente o acesso
na pagina utilizando o navegador resultou em 403 (forbidden).
Eu executei o mesmo comando com o parâmetro -AllowOAuthHttp com sucesso,
sem problemas no endpoint, conforme abaixo:
Eu removi em seguida o Workflow Service Application com o comando
Get-SPWorkflowServiceApplicationProxy | Remove-SPServiceApplicationProxy para
reproduzir o problema novamente.
E desta vez consegui registar o WFM sem o parametro -AllowOAuthHttp....
PS C:\Users\administrator.CONTOSO>
Get-SPWorkflowServiceApplicationProxy | Remove-SPServiceApplicationProxy
Confirm
Are you sure you want to perform this action?
Performing operation "Remove-SPServiceApplicationProxy" on
Target
"WorkflowServiceApplicationProxy Name=Workflow Service Application
Proxy".
[Y] Yes [A] Yes to All [N] No
[L] No to All [S] Suspend [?] Help
(default is "Y"):y
PS C:\Users\administrator.CONTOSO>
Register-SPWorkflowService -SPSite "http://sp2013dev/" -WorkflowHostUri
"https://sp2013dev.contoso.com:12290" -force
WARNING: Overwriting existing scope named "SharePoint" in the
workflow server.
If another SharePoint farm was
registered using this scope, that farm may not
be able to continue working with the workflow server unless
re-registered under
another scope name.
PS C:\Users\administrator.CONTOSO>
[]
terça-feira, 11 de fevereiro de 2014
SharePoint 2013 - Distributed Cache (App Fabric) Error Codes
O cache distribuido é um conjunto de caches e qualquer troubleshooting no SharePoint 2013 requer que este recurso esteja num estado saudável. Seguem os códigos de erro que eu usarei nos próximos artigos relacionados ao distributed cache:
Error code string
|
DataCacheErrorCode constant
|
ERRCA0001
|
CacheItemVersionMismatch
|
ERRCA0002
|
RegistryKeyOpenFailure
|
ERRCA0003
|
InvalidArgument
|
ERRCA0004
|
UndefinedError
|
ERRCA0005
|
RegionDoesNotExist
|
ERRCA0006
|
KeyDoesNotExist
|
ERRCA0007
|
RegionAlreadyExists
|
ERRCA0008
|
KeyAlreadyExists
|
ERRCA0009
|
NamedCacheDoesNotExist
|
ERRCA0010
|
MaxNamedCacheCountExceeded
|
ERRCA0011
|
ObjectLocked
|
ERRCA0012
|
ObjectNotLocked
|
ERRCA0013
|
InvalidCacheLockHandle
|
ERRCA0014
|
InvalidEnumerator
|
ERRCA0015
|
NotificationInvalidationNotSupported
|
ERRCA0016
|
ConnectionTerminated
|
ERRCA0017
|
RetryLater
|
ERRCA0018
|
Timeout
|
ERRCA0019
|
ClientServerVersionMismatch
|
ERRCA0020
|
SerializationException
|
ERRCA0021
|
ServerNull
|
ERRCAdmin001
|
CacheAdminHostsRunning
|
ERRCAdmin002
|
CacheAdminRequestTimeoutResultUnknown
|
ERRCAdmin003
|
CacheAdminTimeout
|
ERRCAdmin004
|
CacheAdminNullArgs
|
ERRCAdmin005
|
CacheAdminUnknownError
|
ERRCAdmin006
|
CacheAdminQuorumNotUp
|
ERRCAdmin007
|
CacheAdminStoreAccessFailure
|
ERRCAdmin008
|
CacheAdminHostsNotRunning
|
ERRCAdmin009
|
CacheAdminCacheNotPresent
|
ERRCAdmin010
|
CacheAdminHostNotPresent
|
ERRCAdmin011
|
CacheAdminCacheAlreadyPresent
|
ERRCAdmin012
|
CacheAdminRegionNotPresent
|
ERRCAdmin013
|
CacheAdminNoQuorumIfHostStopped
|
ERRCAdmin014
|
CacheAdminNoSeedNodes
|
ERRCAdmin015
|
CacheAdminHostRunning
|
ERRCAdmin016
|
CacheAdminHostNotRunning
|
ERRCAdmin017
|
CacheAdminConfigDeleteHostError
|
ERRCAdmin018
|
CacheAdminConfigAddHostError
|
ERRCAdmin019
|
CacheAdminDefaultCacheCreateFailure
|
ERRCAdmin020
|
CacheAdminDeleteInProgress
|
ERRCAdmin021
|
CacheAdminCacheCreationInconsistencyFailure
|
ERRCAdmin022
|
CacheAdminHostNameResolveFailure
|
ERRCAdmin023
|
CacheAdminNoHosts
|
ERRCAdmin024
|
CacheAdminClusterRefreshFailed
|
ERRCAdmin025
|
CacheAdminClusterTimeout
|
ERRCAdmin026
|
CacheAdminRemoteRegistryAccessFailed
|
ERRCAdmin027
|
CacheAdminWindowsAccountInvalid
|
ERRCAdmin028
|
CacheAdminWindowsAccountAlreadyPresent
|
ERRCAdmin029
|
CacheAdminWindowsAccountNotPresent
|
ERRCAdmin030
|
CacheAdminGrantClientAccountErrorFormat
|
ERRCAdmin031
|
CacheAdminRevokeClientAccountErrorFormat
|
ERRCAdmin032
|
CacheAdminInvalidOperation
|
ERRCAdmin033
|
CacheAdminClusterNotReady
|
ERRCAdmin034
|
CacheAdminHostRefreshFailed
|
ERRPS001
|
CacheAdminClusterSettingsReadError
|
ERRPS002
|
CacheAdminInvalidClusterSettings
|
ERRPS003
|
CacheAdminMaxCachesCreated
|
ERRPS004
|
CacheAdminPortsDuplicated
|
ERRPS005
|
CacheAdminClusterDown
|
ERRPS006
|
CacheAdminStatsIncorrect
|
ERRPS007
|
CacheAdminInvalidSecuritySettings
|
ERRPS008
|
CacheAdminInstallPathReadError
|
ERRPS009
|
CacheAdminCacheNotCreated
|
ERRPS010
|
CacheAdminCacheNotRemoved
|
E os sub-códigos:
Error substatus string
|
DataCacheErrorSubStatus constant
|
ES0001
|
None
|
ES0002
|
|
ES0003
|
|
ES0004
|
ReplicationQueueFull
|
ES0005
|
KeyLatched
|
ES0006
|
|
ES0007
|
Assinar:
Postagens (Atom)