Sharepoint 2010 – Debug Overview

Posted on

Dans ce billet j’ai eu envie de partager un aperçu de l’ensemble des outils qui existent sous Visual Studio 2010 et Sharepoint 2010.

Pour ce faire nous allons expliquer les différents outils disponible sur Sharepoint puis ceux sur Visual en tant qu’add-on qui nous permettra d’automatiser nos tâches.

 

Developer Dashboard

Réel tableau de bord destiné à récupérer des informations relatives à l’exécution des pages celui-ci s’active de plusieurs façon :

    • STSADM
      • Activation: stsadm -o setproperty -pn developer-dashboard –pv on
      • Désactivation: stsadm -o setproperty -pn developer-dashboard –pv off
      • A la demande: stsadm -o setproperty -pn developer-dashboard –pv ondemand
    • PowerShell

$srv = [Microsoft.SharePoint.Administration.SPWebService]::ContentService
$setting =$srv.DeveloperDashboardSettings
$setting.DisplayLevel = [Microsoft.SharePoint.Administration.SPDeveloperDashboardLevel]::OnDemand
$setting.Update()

 

  • .Net Code

using Microsoft.SharePoint.Administration; SPDeveloperDashboardSettings mydashboard = SPWebService.ContentService.DeveloperDashboardSettings; mydashboard.DisplayLevel = SPDeveloperDashboardLevel.OnDemand; mydashboard.Update();

Depuis General Application Settings > Developer Settings 

Ainsi vous aurez des options disponibles :

    • Display mode (On, Off, On Demand)
    • Auto Launch du Developer Dashboard quand il y a détection d’évènement critique
    • Autoriser ASP.NET  à sortir le tracing des opérations
    • Configurer la quantité maximum des requêtes SQL tracées
    • Configurer la quantité maximum des évènement critiques tracées
    • Permissions sur  la vue du Developer Dashboard (Full, None or Custom)

 

  • Dashboard Visualizer  ( téléchargeable ici : Dashboard Visualizer)
    • Cet outil vous permettra d’avoir une visibilité graphique de vos activités

 

SPMonitoredScope

 

Cette classe permet aux développeurs de désigner ( d’encapsuler) des portions de leur code en vue de surveiller les statistiques d’utilisation dans les journaux du service ULS et dans le tableau de bord du développeur. Cependant il n’est pas disponible dans les solutions Sandboxed.

using (SPMonitoredScope scope = new SPMonitoredScope (“My Monitored Scope”))

{

// Code pour monitoring

}

Vous avez aussi la possibilité de créer plusieurs Scope dans un Scope principal.

using (new SPMonitoredScope(“My Monitored Scope”))

{

Controls.Add(new Literal { Text = “When the awesomeness is flying… ” });

using (new SPMonitoredScope(“My Sub-Monitored Scope”))

{

Controls.Add(new Literal { Text = “there’s no stopping it! ” });

using (new SPMonitoredScope(“My Sub-Sub-Monitored Scope”))

{

Controls.Add(new Literal { Text = “<br/>I’m three levels deep!” });

}

using (new SPMonitoredScope(“Another deep scope”))

{

Controls.Add(new Literal { Text = “Rock and rumble, rock and rumble” });

}

}

}

Cela aura pour effet d’être automatiquement repris pas le Developper Dashboard comme ci-dessous :

image

 

Web.Config

 

Le fichier Web.Config peut lui aussi s’avérer utile afin de d’avoir plus d’informations que ne donne Sharepoint. Cela permet en outre d’avoir une visibilité par exemple sur l’existence d’une page ou non et de savoir si nous nommes confrontés à une erreur 404 ou non.

  • Localisation des fichiers
    • Root Folder : Local_Drive:InetpubwwwrootwssVirtualDirectoriesxxx
    • Pour les Web Parts : Local_Drive:Program FilesCommon FilesMicrosoft SharedWeb Server Extensionswpresources
    • Servers Virtuels étendus : Local_Drive:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions14CONFIG
    • Pour le /_vti_bin : Local_Drive:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions14ISAPI
    • Pour le /_layouts : Local_Drive:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions14TEMPLATELAYOUTS
    • Administration Centrale : Local_Drive:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions14TEMPLATEADMINLocale_ID

 

  • Options à modifier
    • Callstack
      • <system.web><customErrors mode=”On” />  à changé pour  <system.web><customErrors mode=”Off” />
    • CustomError
      • <SharePoint><SafeMode … CallStack=”false” … >  à changé pour <SharePoint><SafeMode … CallStack=”true” … >
    • Debug
      • <compilation batch=”false” debug=”false“> à changé pour <compilation batch=”true” debug=”true“>
    • Asp.net tracing feature
      • <system.web> <trace enabled=”true” pageOutput=”true“/>

Vous avez aussi la possibilité de passer le code en utilisant la classe SPWebConfigModification.

 

Unified Logging Service

Service de journalisation unifiée , ce mécanisme permet d’écrire les évènements de SharePoint Foundation dans le journal de suivi de SharePoint et les stocke dans le système de fichiers.

Localisation des LOGS : C:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions14LOGS

Exécutable téléchargeable ici : ULSViewer

Ce logiciel vous permettra d’utiliser le correlation id des erreurs générés par Sharepoint et d’avoir une meilleure lisibilités des erreurs.

 

image

 

Sharepoint met aussi à disposition une configuration de ses logs dans Administration Central > Monitoring > Configure diagnostic logging

Notons également qu’il vous est possible d’écrire du code ULS custom en héritant de la classe SPDiagnosticsServiceBase

 

Processus liés

 

Manipulation qui va de pair avec Sharepoint quand nous déboguons, vous pouvez attacher les processus avec Visual studio de plusieurs façons :

  • Farms Solutions:
    • W3WP.exe (IIS worker processes )
    • OWSTimer.exe ( Office Web Server Timer) [ Timer job, email event receiver]
  • Sandboxed Solutions
    • SPUCWorkerProcess.exe
  • Client
    • Silverlight et Javascript sur iexplorer.exe
  • Les breakpoints

Il existe d’autres façons de régler des problèmes de débogage en utilisant l’outil DebugViewer.exe (http://technet.microsoft.com/fr-fr/sysinternals/bb896647%28en-us%29.aspx) qui vous permettra en cas d’un breakpoint non fonctionnel d’avoir une analyse plus fine de la situation.

Voici quelques liens relatif à son utilisation avec Sharepoint :

Enfin vous avez aussi la possibilité d’ajouter une extension  VSIX à Visual Studio 2010 qui vous permettra de bénéficier des attaches pour votre solution . Téléchargeable ici : http://spvsext.codeplex.com/

image

 

En conclusion nous pouvons dire que nous avons beaucoup d’outils et techniques permettant aux développeurs et aux administrateurs d’avoir de la visibilité dans la résolution de problèmes sous Sharepoint 2010.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s