В VS2008 есть проблема, за которую издателю должно быть стыдно, потому что баг в общем-то «детский».

На сервере установлен MOSS 2007, там же VS 2008. Работа ведется локально (или через терминал, значения это не имеет).

Создаём новый проект SharePoint Workflow (любого типа), запускается мастер создания. В нем надо указать адрес узла, на котором будет отлаживаться этот рабочий процесс.
Например, у нас есть site collection по адресу http://portal/helpdesk/, в нем есть сайт с адресом requests. Таким образом, полный путь к сайту выглядит как http://portal/helpdesk/requests/. Сайт без проблем открывается в браузере и в SharePoint Designer’е.

Если ввести адрес такого сайта в качестве отладочного, то VS 2008 станет ругаться, что сайта с указанным адресом не существует:

SharePoint site location entered is not valid. The SharePoint site at http://portal/helpdesk/requests/ could not be found. Verify that you have typed the URL correctly…

Путём ковыряния в логах удалось выяснить, что студия по одним ей ведомым причинам пытается найти сайт по адресу http://portal/helpdesk/helpdesk/requests, т.е. вставляет путь «/helpdesk» два раза:

03/25/2008 14:28:13.44 devenv.exe (0×1380) 0×1068 Windows SharePoint Services General 8e2r Medium Possible mismatch between the reported error with code = 0×81070504 and message: “There is no Web named “/helpdesk/helpdesk/requests”.” and the returned error with code 0×80070002.

Ошибки можно избежать, если указывать в качестве отладочного сайта корень коллекции узлов (в нашем примере http://portal/helpdesk). Или не пользоваться VS2008, а работать на 2005-й :).

Я прекрасно представляю тот кусок кода, который приводит к этой ошибке (сам пару раз по началу на таком накалывался), но очень неприятно видеть подобные баги в RTM-версиях продуктов Микрософта.

Как говорится, «a picture is worth a thousand words». Одна простенькая схема может быть гораздо более выразительной и понятной, чем подробное описание на десяток страниц. Есть масса программ, облегчающих задачу построения схем и диаграмм, но в повседневной жизни я обычно пользуюсь только двумя: Mindjet
MindManager и Microsoft Visio. При этом первая практически идеальна для построения всевозможных иерархий, таксономий, тематических карт (mind maps) и т.п. конструкций. Ну а вторая, я думаю, в представлении не нуждается.

Недавно благодаря одному своему коллеге я узнал, что есть набор шаблонов (stencils) для Visio, облегчающих задачу проектирования интерфейсов для SharePoint 2003. Коллега прислал этот шаблон в архиве, но я решил найти его первоисточник и, заодно, проверить, не появилось ли что-нибудь подобное для WSS 3.0/MOSS 2007. В процессе поисков обнаружилось еще несколько интересных шаблонов для Visio, ссылками на которые я с радостью готов поделиться с вами. Итак:

Надеюсь, что эти шаблоны кому-нибудь кроме меня пригодятся. Всё-таки через красивую и качественную техническую документацию лежит путь к мозгам клиентов и коллег.

Если где-то на просторах интернета вам попадется хороший набор шаблонов для Visio, так или иначе связанный с SharePoint’ом или любым другим продуктом из Microsoft Office Family, оставляйте ссылку в комментариях к этой записи. Будем пополнять список совместными усилиями.

17.03.2008KB946517

Наконец-то появился хотфикс для проблемы, на которую я в своё время потратил уйму времени и нервов, да так и не решил. Симптомы этого «заболевания» выглядят так:

  • Ошибка №6482 в журнале событий: «Application Server Administration job failed for service instance Microsoft.Office.Excel.Server.ExcelServerSharedWebServiceInstance (fdcef81f-582b-4af1-a5ef-ab74fe9f623a). Reason: The path specified cannot be used at this time. (Exception from HRESULT: 0×80070094)» (и то же самое для Microsoft.Office.Server.Search.Administration.SearchAdminSharedWebServiceInstance)
  • Ошибка №7076 вида «Attempted to read or write protected memory. This is
    often an indication that other memory is corrupt, System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.»
  • Ошибка №6398 вида «Windows SharePoint Services 3 …
    Microsoft.Office.Server.Administration.ApplicationServerAdministrationServiceJob. Exception from HRESULT: 0×80005006»
  • При попытке обратиться к IIS’у через его MMC, вываливается сообщение «the path specified cannot be used at this time».

При этом сам IIS и SharePoint работают нормально, никаких проблем не наблюдается.

Указанные выше симптомы устранялись перезапуском IIS’а (иногда – несколько раз подряд!), либо перезагрузкой сервера. Как вы понимаете, для production-среды это неприемлемо.

В официальном описании этого хотфикса на сайте Microsoft KB сказано, что для его получения необходимо обратиться в службу поддержки. К счастью, у нас есть замечательный сайт The Hotfix Share, где его можно скачать (x86, x64).

Трудности перевода слова Pattern в русской версии MOSS 2007.

Вышла финальная версия Office SharePoint Server 2007 Training (к сожалению, пока только на английском).
Доступно в двух вариантах установки:

  • Портальная версия (устанавливается как solution на портал, обучение в режиме on-line с отслеживанием выполнения заданий и пр. На основе SharePoint Learning Kit).
  • Отдельная версия (устанавливается на ПК пользователя).

В публичную бету Microsoft выпустил утилиту под названием SharePoint Capacity Planning Tool. По идее эта утилита позволит вам рассчитать, какое количество серверов и лицензий понадобится приобрести для вашего портала. Звучит заманчиво, не так ли?

Все бы было совсем замечательно, если бы в придачу к этой утилите не пришлось бы ставить System Center Capacity Planner 2007 (который сейчас тоже в публичной бете). По сути SharePoint Capacity Planning Tool представляет собой одну из моделей для этой инструментальный среды. И даже если вам не нужны другие модели, без SCCP 2007 не обойтись.

Стоит отметить, что несколько раньше Hewlett Packard выпустил аналогичную утилиту (и это помимо оценки производительности SharePoint’а на серверах HP). Она умеет рассчитывать количество и спецификации серверов для портала, ориентируясь при этом (сюрприз!) на серверы HP.

Свершилось! В Service Pack 1 для WSS и MOSS заявлена поддержка AJAX Control Toolkit:

ASP.NET for AJAX Compatibility and Support Including Support for Web Parts Built with AJAX Control Toolkit for ASP.NET and AJAX 1.0 Extensions (941955).
You can now use the Microsoft AJAX 1.0 Control toolkit for Microsoft ASP.NET or the AJAX 1.0 Extensions for ASP.NET to create Web Parts for asynchronous post pack. Beginning with WSS 3.0 SP1 and MOSS 2007 SP1, developers can create custom Web Parts using AJAX.

Ключевой технологический момент конструкта под названием «Web 2.0» теперь и на корпоративном портале.

Проблема. Информация в профилях пользователей в коллекции узлов не соответствует информации на личном узле пользователя (и, соответственно, в хранилище профилей поставщика общих услуг (Shared Services Provider)). Например, пользователь загрузил новую фотографию, но в доске обсуждений (и в других частях портала, где должна отображаться фотография) она до сих пор старая.

Сначала немного теории. Известно, что в Windows SharePoint Services 3.0 (WSS) профили пользователей локальны для каждой коллекции узлов. Т.е. в рамках коллекции заводится учетная запись пользователя, после чего у него появляется возможность редактировать свой профиль, загружать фотографии и т.п. Если создается еще одна коллекция узлов, то для нее пользователя надо заводить отдельно (и, соответственно, отдельно заполнять профиль). Так же известно, что в Microsoft Office SharePoint Server 2007 источником данных о пользователях является поставщик общих услуг. Он производит загрузку данных в профили из внешних источников (службы каталогов, бизнес-приложений через BDC и т.п.) Казалось бы, что в MOSS все коллекции узлов должны обращаться к SSP для получения данных о пользователях. На самом деле, это не совсем так.

Для каждой коллекции узлов, как и в WSS, профили пользователей хранятся отдельно. При этом периодически происходит загрузка данных из хранилища профилей SSP в профили пользователей коллекций узлов. За этот процесс отвечает задача Profile Synchronization (внутреннее имя profsynch), которая с некоторой периодичностью (примерно раз в 1 час) запускается внутри портальной фермы. Запуском этой задачи занимается служба Windows SharePoint Services Timer (owstimer.exe).

Решение. Итак, что же делать, если профили в коллекции узлов не обновляются?

  1. Подождать. Если пользователь загрузил новую фотографию несколько минут назад, то это изменение вступит в силу в течение часа.
  2. Запустить индексирование контента портала (а точнее, профилей пользователей). В документации я не нашел упоминания об этом, но, судя по всему, профиль должен быть проиндексирован перед тем, как он будет синхронизирован с коллекцией узлов.
  3. Проверить, работает ли служба таймера. Если служба не запущена, синхронизация профилей не проводится.

Если ждать не хочется, можно просто перезапустить службу таймера. В этом случае, задачи, за которые он отвечает, будут выполнены в течение нескольких следующих минут после запуска.

По умолчанию в верхнем меню узла есть два уровня: тот, который отображается всегда и плоский выпадающий список. Если портал имеет достаточно много уровней иерархии узлов, то навигация становится затруднительной – приходится переходить по ссылкам, постепенно опускаясь ниже по дереву узлов. Есть простой прием, позволяющий облегчить пользователям процесс навигации. Для этого надо в исходном коде мастер-страницы (по умолчанию это default.master) найти элемент <SharePoint:AspMenu> и в нем установить значение атрибута MaximumDynamicDisplayLevels равным, например, 4. При этом выпадающее меню будет раскрываться еще на два уровня вправо (на три – если MaximumDynamicDisplayLevels=”5″, на четыре – если MaximumDynamicDisplayLevels=”6″ и т.д.) Это позволит снизить количество переходов по ссылкам при доступе к узлам нижних уровней портала. [Доберусь до виртуалки - сделаю скриншоты, если надо. За напоминание об этом хаке спасибо венгерскому товарищу.]

Update. Речь идет о именно о верхнем меню. На мастер-странице default.master элемент управления <SharePoint:AspMenu> встречается дважды. Один отвечает за верхнее меню (его id=”TopNavigationMenu”), а второй – за область быстрого запуска (id=”QuickLaunchMenu”). Нас интересует именно первый (он в исходном коде страницы расположен выше).

Здесь в комментариях развернулась бурная дискуссия на тему того, на сколько сложно (и вообще реально ли) настроить внешний вид MOSS 2007 под свои нужды или под требования фирменного стиля компании. Большинство участников сходятся во мнении, что это крайне сложная задача, что лучше не заморачиваться и в качестве CMS’ки воспользоваться чем-то вроде Drupal‘а или MODx‘а. И только один грамотный товарищ из Словении доказывает, что это не так. На картинке – пример того, что его компания смогла сделать из Publishsing Layout и open source’ной темы из интернета.

Это, конечно, не знаменитые Гавайские авиалинии, но тоже очень неплохо.

Для того, чтобы SharePoint выводил вместо обобщенного сообщения об ошибке (типа Unknown Error) полноценную отладочную информацию, необходимо выполнить следующие действия:

  1. На веб-сервере, где установлен SharePoint, перейти в папку Диск:\Inetpub\wwwroot\wss\VirtualDirectories\[папка узла] (например 80).
  2. Открыть текстовым редактором (например, Notepad’ом) файл Web.config.
  3. Найти строку, содержащую слово “CallStack“. Изменить значение атрибута CallStack на “true“. Должна получиться строка следующего вида:
    <SafeMode MaxControls="200" CallStack="true"
         DirectFileDependencies="10" TotalFileDependencies="50" AllowPageLevelTrace="false">
  4. Найти элемент “CustomErrors“. Установить значение атрибута mode в “off“:
    <customErrors mode="Off" />
  5. Сохранить и закрыть файл. Перезапускать IIS при этом не требуется.

Теперь в случае возникновения ошибки будет выводиться полная трасса стека с указанием метода, сгенерировавшего исключение.

А вот здесь дают хостинг на SharePoint. Правда в бесплатной версии есть ограничения на 5 пользователей и 5 мегабайт пространства, но для небольшого проекта или user-группы вполне сгодится. Особенно если документы хранить отдельно где-нибудь в SVN’е (и/или не пользоваться версионностью в библиотеках).

[по материалам JOPX‘а]

На днях Microsoft анонсировал новый продукт – Microsoft Search Server 2008 (в девичестве – S2). В настоящий момент доступна CTP-версия, релиз ожидается в марте 2008 года. Что же это за продукт?

На самом деле MSS 2008 это обновленная версия MOSS 2007 for Search под другим названием. Планируется выпуск двух вариантов поставки: бесплатная версия Express и коммерческий продукт Search Server. Продукт предлагает те же возможности, что и MOSS 2007 Standard Edition, плюс некоторые дополнительные возможности (отмечены курсивом):

  • Интерфейс центра поиска
  • Настраиваемые веб-части, связанные с поиском.
  • Поддержка Best Bets и подсветки результатов поиска.
  • Настройки процесса сбора информации (crawl’инга источников данных).
  • Тезаурус поиска (исключение нерепрезентативных слов, создание наборов синонимов).
  • Поиск в различных источниках данных: общие папки, папки Exchange’а, базы данных Lotus Notes, веб-сайты и др. Набор источников расширяется за счет установки поисковых адаптеров сторонних производителей.
  • Встроенные адаптеры позволяют обрабатывать (искать внутри) документов MS Office, веб-страниц, текстовых файлов, XML-файлов. Так же можно установить бесплатный адаптер для PDF-файлов.
  • Обобщенный поиск (Federated Search) за счет использования коннекторов стандарта OpenSearch. В поставку входят коннекторы для Documentum и FileNet
  • Веб-части для обобщенного поиска.
  • Возможна установка поверх Windows SharePoint Services (WSS) 3.0 для расширения поисковых возможностей этого продукта.
  • Упрощенный процесс установки, проверяющий и наглядно отображающий наличие требуемых компонентов в системе.

Поддерживаются два варианта установки:

  • Простая (Basic) установка – в этом варианте инсталлируется SQL Server Express (с ограничением размера базы 4ГБ). Он используется для хранения поисковой информации. Учитывая максимальный размер базы, могут быть проиндексированы порядка 400000 документов.
  • Расширенная (Advanced) установка – в этом варианте можно указать, какой SQL сервер должен быть использован для хранения поисковой информации.

По сути, при любом варианте сначала ставится WSS 3.0, а затем поверх него функциональность сервера поиска. Разница между полной и Express версиями состоит в том, что Express-версию можно установить только на один сервер, т.е. она не масштабируется.

Установка может быть выполнена поверх существующего WSS 3.0, в этом случае будет расширена поисковая функциональность. Выполнить установку поверх MOSS 2007 нельзя. В первом сервиспаке для MOSS будет добавлена функциональность обобщенного поиска.

Сводная таблица по семейству продуктов, поддерживающих поиск:

Продукт Технологии Характеристики
Microsoft Search Server 2008 Express (MSSX 2008) Windows 2003 Server

WSS 3.0

SQL Server 2005 Express or SQL Server 2005

Бесплатный

Нет ограничений на количество документов (кроме ограничений базы данных MSSQL Express 2005)

Установка только на один сервер

Обобщенный поиск (Federated search)

Microsoft Search Server 2008

(MSS 2008)

Windows 2003 Server

SQL Server 2005 (or SQL Server 2000 SP3a)

WSS 3.0

Без ограничения на количество документов

Поддержка нескольких серверов/ферм

Обобщенный поиск (Federated search)

Microsoft Office SharePoint Server 2007

(MOSS 2007)

  Поиск людей (т.е. поиск в профилях пользователей)

Поиск в Business Data Catalog (BDC)

Остался один небольшой вопрос – что же такое Обобщенный поиск? Это технология, позволяющая передавать поисковые запросы и получать их результаты между различными информационными системами (в т.ч. и веб-сайтами в Интернете). Результаты поискового запроса, полученные от внешних (по отношению к серверу поиска) систем, обычно выводятся рядом с основными результатами. Примеры коннекторов к внешним информационным системам можно посмотреть на сайте Microsoft.

Между тем, замечательная утилита SPM 2007 (скачать) продолжает обновляться (за что, безусловно, спасибо её автору, Carsten Keutmann‘у). Из видимых невооруженным глазом нововведений появился просмотр элемента в браузере прямо в окне программы, просмотр корзины, рабочих процессов и CAML-представлений.

SPM 2007 несколько раз выручал меня в работе. Например, в процессе создания узла произошел сбой. При этом узел появился в Hierarchy Manager, при обращении выдавал сообщение об ошибке и совершенно не хотел удаляться. Я запустил SPM, нашел в нем созданный узел и нажал Delete. Вуаля, узел исчез даже не пикнув.

Единственное ограничение, о котором не стоит забывать: SPM должен быть установлен на той же машине, где стоит SharePoint (т.е. на одном из WFE).

На сайте Microsoft выложен пример плана развертывания MOSS 2007 в формате Microsoft Project. Ничего неожиданного или супероригинального в плане я не заметил, но в качестве шпаргалки/checklist’а вполне сгодится. 300 пунктов - от обследования до передачи в эксплуатацию. Жаль, что на английском - использовать в качестве рыбы не получится.


© 2007 All about IT | iKon Wordpress Theme создана TextNData | Разработано на Wordpress | Локализация: Blogstyle.ru