2010-02-22 2 views
4

Мне нужен способ определения версии SharePoint на основе предоставленного URL. Кроме того, мне нужно, чтобы он реализовывался через веб-службы SharePoint или любой другой метод, который не включает объектную модель SharePoint (поскольку код не выполняется на сервере). Может ли кто-нибудь помочь? Благодарю.Как определить версию SharePoint с помощью веб-служб SharePoint?

ответ

15

Для достижения этой цели вы можете выполнить веб-запрос на ваш SharePoint URL, а затем захватить заголовок узла.

Существует заголовок хоста под названием MicrosoftSharePointTeamServices, который предоставит вам версию SharePoint.

Смотрите ниже:

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); 
    } 
} 

Затем сравните ваш SharePointVersion со следующим списком:

12.0.0.6535 MOSS 20071 или WSS 3.0 SP2 + 09 декабря Накопительное обновление (KB960010 + KB960011)

12.0.0.6524 MOSS 20071 или WSS 3.0 SP2 + обновление 15 декабря (KB977027 + KB977026)

12.0.0.6520 MOSS 20071 или WSS 3.0 SP2 + 9 октября кумулятивное обновление (KB974989 + KB974988)

12.0.0.6514 MOSS 20071 или WSS 3.0 SP2 + 9 августа кумулятивное обновление (KB973400 + KB973399)

12.0.0.6510 MOSS 20071 или WSS 3.0 SP2 + 9 июня кумулятивное обновление (KB971538 + KB971537)

12.0.0.6504 MOSS 20071 или WSS 3.0 SP2 + 9 апреля кумулятивное обновление (KB968850 + KB968851)

12.0.0.6421 MOSS 20071 или WSS 3.0 SP2 (KB953338 + KB953334) [Обновлено 1 августа 09: скачать SP2 теперь включает исправление (KB971620) , устраняющая об активации больше информацию о блоге команды Microsoft SharePoint]

12.0.0.6341 МОХ 20071 или WSS 3.0 9 февраля накопительное обновление (KB961755 + KB961756)

12.0.0.6335 МОХ 20071 или ВКХ 3.0 8 декабря кумулятивное обновление (KB960010 + KB960011)

12.0.0.6331 MOSS 20071 или WSS 3.0 8 октября кумулятивное обновление (KB957691 + KB957693, KB958567 и KB958569)

12.0.0.6327 MOSS 20071 или WSS 3.0 августа 08 накопительное обновление (KB956056 & KB956057)

12.0.0.6318 МОХ 20071 или WSS 3.0 обновление инфраструктуры (KB951695 & KB951297)

12.0.0.6303 МОХ 20071 или WSS 3.0 SP1 после исправления (KB948945)

12.0.0.6301 МОХ 20071 или WSS 3.0 SP1 после исправления (KB941274)

12.0.0.6300 МОХ 20071 или WSS 3.0 SP1 после исправления (KB941422)

12.0.0.6219 MOSS 20071 или WSS 3.0 SP1

12.0.0.6039 MOSS 20071 или WSS 3.0 октября публичное обновление

12.0.0.6036 MOSS 20071 или WSS 3.0 24 августа, 07 пакета исправлений

12.0.0.4518 МОХ 20071 или WSS 3.0 RTM

12.0.0.4407 МОХ 20071 или WSS 3.0 Beta 2 TR

12.0.0.4017 МОХ 20071 или WSS 3.0 Beta 2

12.0.0.3111 Офис 12 (PDC-изображение - pre-beta). Эта версия Office не имеет ссылки поддержки в диалоговом окне «Установка и удаление программ» .

+0

Молодец! Спасибо за ваш ответ. Очень компактный, аккуратный и эффективный код. Пятно на! – Boris

+0

Я получаю такое же название версии для WSS и MOSS 2007 ?: http://stackoverflow.com/questions/5002569/i-am-getting-same-version-name-for-wss-and-moss-2007 – TinTin

0

Быстро просматривая веб-сервисы я не мог найти способ сделать это (даже в службе admin.asmx под центральным администратором)

Идеи:

  1. Если сможет подменить как Системная учетная запись, возьмите страницу /_layouts/settings.aspx, theres свойство ProductVersionString, которое вы можете проанализировать html, чтобы получить (рассмотрите jquery для получения более быстрых результатов).

  2. Если вы можете изменить сервер, создайте страницу version.aspx в 12 \ TEMPLATE \ LAYOUTS папка (или вебсервис) и с помощью отражения выводит Microsoft.SharePoint.Utilities.SPUtilityInternal типа и его ProductVersionString

+0

Ф. Акино, благодарю вас за ответ. К сожалению, это не сработает с SharePoint 2010. Основная причина, по которой мне нужна эта функция, в первую очередь, заключается в том, чтобы определить, предоставляет ли пользователь ссылку на сайт SP2007 или SP2010. В этих двух версиях создание подсайтов обрабатывается по-разному, поэтому мне нужно обеспечить ветвление в моем коде. Условие ветвления должно быть истинным для SP2007 или false для SP2010. – Boris

+0

Я не понимаю, почему это не так, упомянутый 12 - это просто пример, и объектная модель не изменилась для этой части, но я оставил ответ Йоши, ниже которого лучше. –

+0

Я не могу использовать объектную модель SharePoint. – Boris

2

Вот еще один вариант (от Jeremy Thake's blog). Перейдите к:

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

возвратов, например:

vti_encoding: SR | utf8-п

vti_extenderversion: SR | 14.0.0.7145

Хотя технически веб имя_службы, вы могли бы назвать это используя HTTP GET, анализировать результаты. Кроме того, с помощью этого метода вам не требуется разрешение на доступ к семейству сайтов по URL-адресу, как и при использовании метода принятого ответа.

Смежные вопросы