SharePoint – DateTimeControl – unexpected error – iframe – Object reference not set to an instance of an object

Problème

Dans une solution existante, j’ai un contrôle de type DateTime:

<Sharepoint:DateTimeControl ID="DateTimeControl1"  dateonly="true" ShowWeekNumber="true" FirstDayOfWeek="1" FirstWeekOfYear="2" runat="server" EnableViewState="true"></sharepoint:DateTimeControl>

Cependant au lieu d’avoir le contrôle, j’ai eu un message d’erreur à la place (An unexpected error has occurred):

2014-12-10_09-45-35

 

Dans le log ULS:

Medium Application error when access /_layouts/15/iframe.aspx, Error=Object reference not set to an instance of an object. at Microsoft.SharePoint.Utilities.SPUtility.GetThemedImageUrl(String originalUrl, String themeKey) at Microsoft.SharePoint.WebControls.DatePicker..ctor() at Microsoft.SharePoint.WebControls.SPDatePickerControl.InitDatePicker() at Microsoft.SharePoint.WebControls.SPDatePickerControl.set_ShowWeekNumber(Boolean value) at Microsoft.SharePoint.ApplicationPages.DatePickerFrame.Page_Load(Object sender, EventArgs e) at System.EventHandler.Invoke(Object sender, EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Unexpected System.NullReferenceException: Object reference not set to an instance of an object. at Microsoft.SharePoint.Utilities.SPUtility.GetThemedImageUrl(String originalUrl, String themeKey) at Microsoft.SharePoint.WebControls.DatePicker..ctor() at Microsoft.SharePoint.WebControls.SPDatePickerControl.InitDatePicker() at Microsoft.SharePoint.WebControls.SPDatePickerControl.set_ShowWeekNumber(Boolean value) at Microsoft.SharePoint.ApplicationPages.DatePickerFrame.Page_Load(Object sender, EventArgs e) at System.EventHandler.Invoke(Object sender, EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

 

Solution

Il faut créer une collection site à la racine de l’application web (/).

Simple, mais SharePoint est capricieux comme toujours.

 

Project Server 2013 – Access to the registry key ‘Global’ is denied

Problème

Toutes les minutes, dans les journaux ULS, vous constatez cette erreur:

  • Process: Microsoft.Office.Project.Server
  • Produit: Project Server
  • Catégorie: Project Calculation Service
Timer Task thread crashed System.UnauthorizedAccessException: Access to the registry key 'Global' is denied. 
 at Microsoft.Win32.RegistryKey.Win32Error(Int32 errorCode, String str) 
 at Microsoft.Win32.RegistryKey.InternalGetValue(String name, Object defaultValue, Boolean doNotExpand, Boolean checkSecurity) 
 at Microsoft.Win32.RegistryKey.GetValue(String name) 
 at System.Diagnostics.PerformanceMonitor.GetData(String item) 
 at System.Diagnostics.PerformanceCounterLib.GetPerformanceData(String item) 
 at System.Diagnostics.PerformanceCounterLib.get_CategoryTable() 
 at System.Diagnostics.PerformanceCounterLib.CounterExists(String category, String counter, Boolean& categoryExists) 
 at System.Diagnostics.PerformanceCounterLib.CounterExists(String machine, String category, String counter) 
 at System.Diagnostics.PerformanceCounter.InitializeImpl() 
 at System.Diagnostics.PerformanceCounter..ctor(String categoryName, String counterName, String instanceName, Boolean readOnly) 
 at System.Diagnostics.PerformanceCounter..ctor(String categoryName, String counterName, String instanceName) 
 at Microsoft.Office.Project.Server.BusinessLayer.PcsEngine.PcsPerfCounter.<.ctor>b__0() 
 at System.Lazy`1.CreateValue() --- End of stack trace from previous location where exception was thrown --- 
 at System.Lazy`1.get_Value() 
 at Microsoft.Office.Project.Server.BusinessLayer.PcsEngine.PcsPerfCounter.EnsureSampleDataTask() 
 at Microsoft.Office.Project.Server.BusinessLayer.PcsEngine.PcsTaskWorker.PerformTasksCallback(Object obj) StackTrace: 
 at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
 at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() 
 at System.Threading.ThreadPoolWorkQueue.Dispatch()

Solution

Project Server maintient des compteurs de performances le concernant. Il doit donc avoir les droits de le faire. Il faut ajouter le compte qui démarre les services Project Server aux groupes locaux suivants:

  • Performance Log Users
  • Performance Monitor Users

Il faut ensuite redémarrer les services Project Server quand la file d’attente n’a pas de travail.

SharePoint 2013 – NodeRunnerQuery et NodeRunnerAdmin – erreurs accès SQL

Problème

Dans les journaux ULS de SharePoint, vous constatez ces messages en boucle:

  • Unable to get sql session to admin database
  • NerioCluster: No lease returned when reading DB

2014-10-05_10-58-11

Solution

Le service de recherche est démarré dans les services, mais aucune application de recherche n’est crée.

Il faut soit créer une application de recherche soit arrêter le service depuis l’administration centrale:

2014-10-05_11-01-38

SharePoint 2013 – MsiInstaller – 1015 – Failed to connect to server. Error: 0x80070005

Problème

Tous les soirs dans les journaux d’événements vous constatez cet avertissement:

Failed to connect to server. Error: 0x80070005

2014-08-03_16-37-25

En revanche vous n’avez pas les erreurs DCOM généralement associées.

Solution

  1. Rendre temporairement administrateur local le compte admin de la ferme (celui qui démarre le service SharePoint Timer)
  2. Via le prompt PowerShell de SharePoint: Get-SPProduct -local
  3. Via le prompt PowerShell de SharePoint: (get-spserver $env:computername).NeedsUpgrade
  4. Lancer manuellement le travail du timer qui génère cette alerte: Get-SPTimerJob job-admin-product-version | Start-SPTimerJob
  5. Vérifier que cette erreur n’est plus présente dans les journaux après son exécution
  6. Enlever le compte des administrateurs locaux
  7. Redémarrer le service SharePoint Timer
  8. Lancer manuellement le travail du timer qui génère cette alerte: Get-SPTimerJob job-admin-product-version | Start-SPTimerJob
  9. Vérifier que cette erreur n’est plus présente dans les journaux après son exécution

Microsoft Project – livrable – fichiers srchui.dll et jscript.dll

Depuis Microsoft Project 2010 et 2013, en utilisant le menu de gestion des livrables, vous obtenez:

23-03-2014 12-09-39Ce message qui semble venir d’outre tombe de la version 2003 apparaît au lieu du panneau latéral.

Inutile de les chercher sur votre machine, vous ne les avez certainement pas.

C’est en fait un problème avec la zone « Internet » de internet explorer, même si votre serveur Project est dans la zone « intranet ».

La zone internet ne doit pas être avec le curseur au maximum en haut, sinon les livrables Project ne fonctionnent plus.

26-03-2014 07-43-13

Le tout même sur Windows Server 2012 R2 + Project 2013 SP1 + IE 11 complètement à jour…

 

 

SharePoint/Project 2013 SP1 – Configuration wizard

Après avoir déployé le Service Pack 1 de SharePoint/Project 2013, il faut passer le configuration wizard. Dans le cas présent, il échouait sur tous les noeuds avec la même erreur dans le log:

SyncUpgradeTimerJob: sleeping for 10 seconds
SyncUpgradeTimerJob: sleeping for 10 seconds
SyncUpgradeTimerJob: Upgrade timer job failed. Return -1.
The exclusive inplace upgrader timer job failed.

 

Etape 1 – autre log

Un autre log est beaucoup plus utile, au même endroit, il porte le nom upgrade-date-blahblah-error.log:

Exception: The operation cannot be performed on database "WSS_UsageApplication" because it is involved in a database mirroring session or an availability group. Some operations are not allowed on a database that is participating in a database mirroring session or in an availability group.  ALTER DATABASE statement failed

Ou alors en utilisant la commande upgrade-spfarm:

29-03-2014 12-55-19

 

Solution

Supprimer le miroir ou always-on le temps de l’upgrade sur cette base.

 

 

SharePoint – User profile – ResetSynchronizationDatabase : Operation is not valid due to the current state of the object

Problème

En voulant faire un reset de la base de synchronisation UPS de SharePoint, j’ai eu le message d’erreur suivant:

PS C:> $upa.ResetSynchronizationDatabase()
 Exception calling "ResetSynchronizationDatabase" with "0" argument(s):
 "Operation is not valid due to the current state of the object."
 At line:1 char:1
 + $upa.ResetSynchronizationDatabase()
 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 + CategoryInfo : NotSpecified: (:) [], MethodInvocationException
 + FullyQualifiedErrorId : InvalidOperationException

Solution

La base est en fait en miroir SQL. Au même moment, dans les journaux du serveur SharePoint:

event_5586

Il faut d’abord supprimer le miroir puis recommencer.

 

 

SharePoint: The local farm is not accessible. Cmdlets with FeatureDependencyId are not registered

Top des possibilités:

  • le prompt Powershell n’est pas lancé en mode administrateur (prompt UAC)
  • Vous n’êtes pas administrateur local
  • Vous n’avez pas accès aux bases SQL. Le snapin doit se connecter à la base de configuration de la ferme.

Histoire de ne pas faire le post le plus court de l’année, vous pouvez vérifier avec Process Explorer si vous êtes vraiment administrateur (aka UAC elevated):

  • Deny : vous êtes membres mais UAC vous bloque. Il faut relancer en run as administrator
  • Owner: vous êtes bien administrateur avec UAC elevated. Donc c’est SQL le problème 😉

06-05-2013 22-52-21

06-05-2013 22-53-32

 

SharePoint – event 8311 – SSL policy errors have been encountered. Error code 0x2

 

 

 

 

SharePoint n’est pas avare en message, et ils ont presque toujours une origine, reste à trouver laquelle…

Cette fois, le message suivant est apparu sur la ferme 2010 et 2013:
sharepoint event 8311

Ce qui donne:

Log Name: Application
Source: Microsoft-SharePoint Products-SharePoint Foundation
Event ID: 8311
Task Category: Topology
Level: Error
Description:
An operation failed because the following certificate has validation errors:nnSubject Name: CN=Server.mydomain.netnIssuer Name: CN=my-CA, DC=mydomain, DC=net

Errors:nn SSL policy errors have been encountered. Error code '0x2'..

 

Cause

Un certificat a été assigné dans IIS pour le site SharePoint Web Services (binding SSL port 32844).

 

Résolution

Le problème ne vient pas de la confiance du certificat, mais du subject name. Il s’avère que le serveur est enregistré avec le nom court dans la ferme, et que le certificat contient le FQDN.

2 solutions:

  • Générer un autre certificat avec un subject name qui correspond au serveur,
  • Renommer le serveur dans la ferme SharePoint.

C’est cette deuxième option qui a été renommé, à faire en PowerShell.

Lister les serveurs avec leur nom inscrit dans la ferme:

get-spserver

Renommer un serveur (à lancer localement sur le serveur):

Rename-SPServer -Identity MyServer -Name MyServer.MyDomain.net

Faire un iisreset ensuite, et patienter 10mn que la topology se mette à jour 🙂

 

Project 2013: Upgrade-SPProjectWebInstance – ActivatePWAWebThemesFeature failed

En voulant mettre à jour une instance Project 2010 en 2013:

Upgrade-SPProjectWebInstance https://url/pwa

Il s’en ait suivi cette erreur:

Upgrade-SPProjectWebInstance : Post provision setup failed.
ActivatePWAWebThemesFeature failed.
At line:1 char:1
+ Upgrade-SPProjectWebInstance https://url/pwa
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 + CategoryInfo : InvalidData: (Microsoft.Offic...radePwaInstance:
 PSCmdletUpgradePwaInstance) [Upgrade-SPProjectWebInstance], ProvisionException
 + FullyQualifiedErrorId : Microsoft.Office.Project.Server.Cmdlet.PSCmdletUpgradePwaInstance

 

Solution:

Il faut d’abord mettre à jour le site SharePoint en 2013 pour que la fonctionnalité soit présente:

Upgrade-SPSite -Identity https://url/pwa -versionupgrade

puis relancer la commande du départ:

Upgrade-SPProjectWebInstance https://url/pwa