2010-02-22 5 views
4

J'ai besoin d'un moyen de déterminer la version de SharePoint en fonction de l'URL fournie. De plus, je dois l'implémenter via les services Web SharePoint ou toute autre méthode qui ne concerne pas et qui ne concerne pas le modèle d'objet SharePoint (car le code n'est pas exécuté sur le serveur). Quelqu'un pourrait-il aider s'il vous plaît? Merci.Comment déterminer la version SharePoint à l'aide des services Web SharePoint?

Répondre

15

Pour ce faire, vous pouvez exécuter une requête Web à l'URL de votre SharePoint, puis saisir un en-tête d'hôte.

Il existe un en-tête d'hôte appelé MicrosoftSharePointTeamServices qui vous fournira la version SharePoint.

Voir ci-dessous:

using System; 
using System.Net; 

class C { 
    static void Main(string[] args) { 
    var uri = new Uri(args[0]); 
    var wc = new WebClient(); 
    wc.UseDefaultCredentials = true; 
    wc.DownloadString(uri); 
    var sharePointVersion = wc.ResponseHeaders["MicrosoftSharePointTeamServices"]; 
    Console.WriteLine(sharePointVersion); 
    } 
} 

Ensuite, comparez votre SharePointVersion avec la liste suivante:

12.0.0.6535 MOSS 20071 ou WSS 3.0 SP2 + Décembre Mise à jour cumulative 09 (KB960010 + KB960011)

MOSS 20071 ou WSS 3.0 SP2 + mise à jour du 15 décembre (KB977027 + KB977026)

12.0.0.6520 MOSS 20071 ou WSS 3.0 SP2 + Octobre cumulatif Actualités 09 (KB974989 + KB974988)

12.0.0.6514 MOSS 20071 ou WSS 3.0 SP2 + 09 Août Mise à jour cumulative (KB973400 + KB973399)

12.0.0.6510 MOSS 20071 ou WSS 3.0 SP2 + Juin cumulatif Actualités 09 (KB971538 + KB971537)

12.0.0.6504 MOSS 20071 ou WSS 3.0 SP2 + Avril cumulatif Actualités 09 (KB968850 + KB968851)

12.0.0.6421 MOSS 20071 ou WSS 3.0 SP2 (KB953338 + KB953334) [1er Mise à jour le 9 août: télécharger SP2 inclut maintenant le correctif (KB971620) qui corrige le problème d'activation plus d'informations sur le blog de l'équipe Microsoft SharePoint]

12.0.0.6341 MOSS 20071 ou WSS 3.0 Février Mise à jour cumulative 09 (KB961755 + KB961756)

12.0.0.6335 MOSS ou WSS 20071 3.0 Décembre 08 Mise à jour cumulative (KB960010 + KB960011)

12.0.0.6331 MOSS 20071 ou WSS 3.0 Octobre 08 Mise à jour cumulative (KB957691 + KB957693, KB958567 et KB958569)

12.0.0.6327 MOSS 20071 ou WSS 3.0 Août 08 mise à jour cumulative (KB956056 & KB956057)

12.0.0.6318 MOSS 20071 ou WSS 3.0 Mise à jour de l'infrastructure (KB951695 & KB951297)

12.0.0.6303 MOSS 20071 ou WSS 3.0 correctif post-SP1 (KB948945)

12.0.0.6301 MOSS 20071 ou WSS 3.0 correctif post-SP1 (KB941274)

12.0.0.6300 MOSS 20071 ou WSS 3.0 correctif post-SP1 (KB941422)

12.0.0.6219 MOSS 20071 ou WSS 3.0 SP1

12.0.0.6039 MOSS 20071 ou WSS 3.0 Octobre mise à jour publique

12.0.0.6036 MOSS 20071 ou WSS 3.0 24 Août 07 package de correctifs

12.0.0.4518 MOSS 20071 ou WSS 3.0 RTM

12.0.0.4407 MOSS 20071 ou WSS 3.0 Beta 2 TR

12.0.0.4017 MOSS 20071 ou WSS 3.0 Beta 2

12.0.0.3111 Office 12 (Image PDC - pré-bêta) - Cette version de Office ne possède pas de lien de support dans la boîte de dialogue Ajout/Suppression de programmes .

+0

Bravo! Merci pour votre réponse. Code très compact, soigné et efficace. Spot sur! – Boris

+0

Je reçois le même nom de version pour WSS et MOSS 2007 ?: http://stackoverflow.com/questions/5002569/i-am-getting-same-version-name-for-wss-and-moss-2007 – TinTin

0

parcourant rapidement les webservices je ne pouvais pas trouver un moyen de le faire (même dans le service admin.asmx sous l'administration centrale)

Idées:

  1. si elle est capable d'usurper l'identité comme Compte système, accédez à la page /_layouts/settings.aspx, il existe une propriété ProductVersionString à laquelle vous pouvez accéder pour obtenir des résultats plus rapides (considérez jquery pour obtenir des résultats plus rapides)

  2. Si vous pouvez changer le serveur, créez une page version.aspx dans les 12 \ TEMPLATE \ LAYOUTS dossier (ou webservice) et par réflexion sorties du type Microsoft.SharePoint.Utilities.SPUtilityInternal et son ProductVersionString

+0

F. Aquino, merci pour votre réponse. Malheureusement, cela ne fonctionnera pas avec SharePoint 2010. La principale raison pour laquelle j'ai besoin de cette fonctionnalité en premier lieu est de pouvoir déterminer si l'utilisateur fournit le lien vers le site SP2007 ou SP2010. La création de sous-site est traitée différemment dans ces deux versions, je dois donc fournir des branchements dans mon code. La condition de branchement doit être vraie pour SP2007 ou false pour SP2010. – Boris

+0

Je ne vois pas pourquoi il wouldnt, le 12 mentionné est juste un exemple, et le modèle d'objet n'a pas changé beaucoup pour cette partie, mais j'ai fini par upvoting la réponse de Josha ci-dessous qui est waaay mieux. –

+0

Je ne peux pas utiliser le modèle objet de SharePoint. – Boris

2

Voici une autre option (de Jeremy Thake's blog). Accédez à:

http://<servername>/_vti_pvt/service.cnf

retours, par exemple:

vti_encoding: SR | UTF8 nl

vti_extenderversion: SR | 14.0.0.7145

Bien que pas techniquement un serivce Web, vous pourriez appeler à l'aide d'une requête HTTP GET, analyser les résultats. En outre, avec cette méthode, vous n'avez pas besoin d'autorisation pour accéder à la collection de sites à l'URL, comme vous le faites avec la méthode de réponse acceptée.

Questions connexes