Категория Архивы: Разработки SharePoint

Бамбук календарь взаимодействия с SharePoint вызывает «непредвиденная ошибка»

Сегодня, Я работаю в среде, использующей бамбука Календарь веб-часть для некоторых улучшение сотрудничества. Это Стандартный средних и малых фермы с двумя интерфейсных балансировки нагрузки, «сервер приложений» для индексации и InfoPath и кластеризованного SQL серверной части.

Клиент установил некоторые аварийного восстановления программного обеспечения на один из интерфейсных и привела к сломанной WFE для определенного сайта в семействе сайтов. Всякий раз, когда нагрузки на пострадавших WFE и что сайт, пользователи видели основном пустой белый экран с предложением «непредвиденная ошибка». Никакой другой информации показал, просто это предложение.

Они попросили меня смотреть на него. Я легко воспроизвести проблему и затем добавил ?содержание = 1 в конец URL-адреса. Это, как я узнал, что они используют бамбук веб-части. Я пошел обратно на страницу и теперь, вдруг, Он показал мне хорошо упорядоченное сообщение:

image

Я не знаю, что происходит или что я сделал, чтобы получить сообщение об ошибке контролируемых для отображения, за исключением добавления ?содержание = 1 бит строки запроса.

Вероятно, это очень редкие крайним случаем, но если вы получите это сообщение, «Произошла непредвиденная ошибка» пойти дальше и добавить ?содержание = 1 в строку запроса и посмотреть, куда это ведет.

</конец>

Подписаться на мой блог.

Следуй за мной по щебетать на http://www.twitter.com/pagalvin

Бирки Technorati: ,

Использование рефлектор на Microsoft.SharePoint.dll

Рефлектор Redgate .NET Майкл Блюменталь поставил вверх статья о оповещения и представления ("Какие представления могут быть использованы при создании оповещения ?"), что интересно по существу. Однако, Я был еще более интересно посмотреть, как он методично ходит через процесс использования Redgate в .NET Reflector. Шаг за шагом, Он показывает, как использовать этот инструмент трека вниз как SharePoint определяет, должен ли быть "subscribable взгляд на список" из-за отсутствия лучшего слова (он объясняет это намного лучше, чем я ).

В этот момент в эпоху SharePoint, Вы почти должны быть глухим и слепым, чтобы не слышал или читал об использовании этого инструмента. Она имеет расширенный вещи и мои собственные чувства, что это во многих отношениях инструмент последней инстанции. Однако, Если вы считаете, вы в ней нуждается, но не знаю как, Майкл write-up представляется как большой учебник по этой теме.

</конец>

Подписаться на мой блог.

Следуй за мной по щебетать на http://www.twitter.com/pagalvin

Сортировка элементов календаря в представлении календаря

Я использую для отслеживания дискуссии на данный день календаря. У меня есть две сессии: утром и днем. Я хочу создать представление, отображающее утренние заседания только в алфавитном порядке через идентификатор сеанса. Это немного сложнее для выполнения (Если я упустил что-то реальное очевидное).

Можно легко создать отфильтрованного представления показаны только тот день события. Календарь будет показать все эти события и если все они проходят на тот же час, Он перечисляет их бок о бок в час слот. Это здорово. Каверзная часть является то, что, по умолчанию, Он хочет, чтобы перечислить их в формате идентификатора. Таким образом, Если добавить "сессии 02" и тогда «сессия 01" в календарь, Он показывает их в таком порядке (т.е., Сессия 02 и затем сессии 01). Перечислить их в порядке Идентификаторов сессии, Я подумал попробовать эти вещи:

  1. Настройка представления с помощью веб-интерфейса пользователя. Не повезло. Есть никаких вариантов сортировки элементов таким образом.

    Так как это не работает, Я теперь надеясь там запрос CAML, где-то в там, что позволит мне переопределить сортировки. CQWP позволяет мне сделать что рода изменения, может быть также будет календарь?

  2. Редактировать в веб-части, Посмотрите на экспорт»" Функция и … БАЦ! Я не могу экспортировать его XML. Существует не вариант экспорта.

    Я до сих пор проведение надежду на то, что я могу найти и изменить некоторые запрос CAML. Так как я не могу экспортировать веб-часть, Это оставляет SharePoint Designer.

  3. Я добавить календарь веб-часть к сайту песочнице и открыть этот сайт с помощью SharePoint Designer. Я смотрю на разметку для веб-части и я нахожу, что я ищу. Он кодовое безумие, но оно есть: "<ListViewXml …. >закодированные безумие</ListViewXml>". Специально, Существует этот камень:

<Запрос>
<Где>
<DateRangesOverlap>
<FieldRef имя = «EventDate» />
<FieldRef имя = «EndDate» />
<FieldRef имя = «RecurrenceID» />
<Значение Type = «DateTime»>
<Месяц />
</Значение>
</DateRangesOverlap>
</Где>
<OrderBy><FieldRef имя = «Session_x0020_ID" /></OrderBy>
</Запрос>

(Я расшифрованы &lt;в и &gt и разделить их на несколько строк для ясности).

Добавить <OrderBy> бит, и теперь он сортирует по ID сессии, не идентификатор элемента внутреннего списка.

Гигантские отзыв o’ Шляпа для Бекки Isserman за ее комментарий в блоге Иша саги: http://www.sharepoint-tips.com/2008/07/caml-sorting-by-file-name.html. Я бы не поставил <OrderBy> в нужном месте без ее комментарий.

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

</конец>

Функции SharePoint & Решения управления — Не забывайте u в CRUD (или d это важно)

Мы коллективно тратить много времени, думая о решениях SharePoint — их создание, какой инструмент для использования, что происходит, когда они не могут развернуть, задания таймера, области, и т.д.. Мы тратим так много времени, думая о предварительных биты, которые легко забыть, что мы должны отказаться от них также. Отзыв решений вероятно более трудным, с точки зрения концептуального дизайна, чем их развертывания. Развертывание в основном делом кулинарной. Обычно, Установка функции, может быть есть функция приемника загрузки некоторых данных в список, такого рода вещи. Однако, Отзыв является потенциально более сложным.

Данное решение может создавать артефакты как эти:

  • Тип содержимого
  • Определение списка
  • Определение веб-сайта
  • Данные в списке
  • Даже магнитолы
  • Формы InfoPath

Список идет дальше.

Хотя очевидно, что важно при разработке решения, создает эти артефакты правильно, Это так же важно рассмотреть обновление и удаление случаев. Если ваше решение создает новый список и заполняет список с данными, что происходит при отзыве решения? В некоторых случаях, список должен быть удалены. В других случаях, оно должно быть оставлено неповрежденной для исторических целей. Требованиям вашего бизнеса поможет вам правильное решение.

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

Такого рода анализа очевидно лучше всего сделать, прежде чем когда-либо развертывается на ферме SharePoint. Однако, как Курение, Это никогда не слишком поздно, чтобы начать делать вещи правильно. Создание этой матрицы и разработать план для решения отсутствующих сценариев обновления/удаления. Это может быть сложная проблема, для решения, но по крайней мере вы будете положить рамку вокруг проблемы.

</конец>

Подписаться на мой блог.

Следуй за мной по щебетать на http://www.twitter.com/pagalvin

Бирки Technorati:

Быстрое исправление: Веб-службы, взаимодействуют с SharePoint, Исключение InvalidOperationException

Миллион лет назад, Я помог разработать веб-службы, который был вызван через настраиваемого действия рабочего процесса SharePoint Designer. На этой неделе, Клиент хотел, чтобы переместить его в производство (Наконец!) так что мы сделали.

Настраиваемое действие работал штрафа, Однако веб-службы, которую он вызывается не, давая нам эта ошибка:

System.InvalidOperationException: Эта операция может быть выполнена только на компьютере, который присоединен к ферме серверов пользователи, имеющие разрешения в SQL Server для чтения из базы данных конфигурации. Для подключения этого сервера к ферме серверов, Используйте мастер настройки технологий и продуктов SharePoint, Расположенный на меню "Пуск" в разделе Администрирование.
в Microsoft.SharePoint.Administration.SPWebApplication.Lookup(URI requestUri)

Оказывается, что я забыл добавить службу в IIS пул приложений SharePoint. После того, как я сделал это, Он работал штрафа.

Этот MSDN форум проводки дал мне ключ, что мне нужно: http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/2c97c004-7118-4e06-a62c-b2b0ac07ac99

</конец>

Подписаться на мой блог.

Следуй за мной по щебетать: http://twitter.com/pagalvin

Бирки Technorati:

Быстро и легко: Получить SPFolder SPItemList

Я держать работает в эту проблему и Google, как представляется, никогда не понять, что я хочу сделать, так я понял я хотел бы написать это.

Я делал много приемника событий отладки в последнюю неделю или два. ER определяется против библиотеки документов. Отдельные элементы в библиотеке документов тесно связаны с их родительской папки. Таким образом, Я всегда получаю папке пункта для различных манипуляций. Во время отладки, Мне необходимо обновить метаданные папки для конкретного элемента, идентификатор которого я знаю.

Вот немного консольное приложение (предназначен для работы на сервере в ферме) который принимает два аргумента: Идентификатор элемента и значение для присвоения полю, «Состояние утверждения». Это жесткий коды много вещей и не проверка ошибок.

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

Основной урок здесь для меня является, что SPItem не получить доступ к папке. Вам нужно использовать SPListItem.File.

Если кто-то заботится предложить критика или предложить лучший способ получить папку элемента, Пожалуйста, оставьте комментарий.

<код>
использование Система;
использование System.Collections.Generic;
использование System.Text;
использование Microsoft.SharePoint;
использование System.Collections;

пространство имен Conchango
{
    /// <Резюме>
 /// </Резюме>
 класс ManualFolderUpdate
    {
        статический void Главная(Строка[] args)
        {
            Строка MSH = «ManualFolderUpdate (v1.0): "; // MSH = "сообщения заголовок"

 Консоль.WriteLine(MSH + «Запуск.  Я Последнее изменение 08/04/08.");

            Строка URL = http://localhost/xyzzy;

            использование (SPSite oSPSite = Новые функции SPSite(URL-адрес))
            {

                использование (SPWeb oSPWeb = oSPSite.OpenWeb())
                {
                    SPList библиотеки документов = oSPWeb.Lists[«Документы"];

                    Консоль.WriteLine(MSH + «Получили библиотеки документов.");

                    Консоль.WriteLine(MSH + «Количество элементов lib doc: [" + docLib.ItemCount + "].");

                    int FolderID = 0;
                    Строка NewStatus = «xyzzy";

                    FolderID = System.Конвертировать.ToInt32(args[0].ToString());
                    Консоль.WriteLine(«Ищу папку для элемента: [" + FolderID + "].");

                    SPListItem Li = docLib.GetItemById(FolderID);

                    SPFolder thisItemFolder = li.File.ParentFolder;

                    Консоль.WriteLine(MSH + «Получил в родительской папке.");

                    NewStatus = args[1].ToString();
                    Консоль.WriteLine(«Установка статуса [" + NewStatus + "].");

                    Консоль.WriteLine(«Пресс-возвращение совершить обновление или CTRL-C для прерывания.");

                    Консоль.ReadLine();

                    thisItemFolder.Item[«Состояние утверждения"] = NewStatus;
                    thisItemFolder.Item.Update();

                    Консоль.WriteLine(MSH + «Закончились обновления папки.  Выход.");

                } // с помощью SPWeb

            } // с помощью SPSite

 Консоль.WriteLine(MSH + «Завершена.");

        } // Главная

    } // класс foldersync
} // пространство имен
</код>

</конец>

Подписаться на мой блог.

Скрытие настраиваемые действия в SharePoint

Несколько месяцев назад, во время работы над проектом для клиента, Я создал функцию. Среди прочего, Эта функция определена настраиваемого действия (они появляются в разделе Параметры сайта). Единственная цель для этого настраиваемого действия было показать мне, что функция активации работает как ожидалось. В основном, Я использовал его как сырой форма отладки.

Многое в моей неловкости, Этот артефакт отладки сделал свой путь от dev UAT и производству, прежде чем кто-то получил вокруг, чтобы спрашивать, «что такое эта ссылка xyzzy?"

В настоящее время, Мы находимся в производство, и я действительно не хочу удалить компонент, исправить elements.xml, а затем переустановите.

Тодд мрачнее указал простой способ справиться с этим. По его словам:

«Действия CustomActions, не копируются в базу данных, они считываются непосредственно из файла Elements.xml и копируется в состояние приложения во время выполнения. Таким образом, Вам не нужно отключать, удалить, Переустановите, и активировать функцию удалить CustomAction. Просто удалите его из файла Elements.xml и перезапустить пул приложений(s) осуществляется. В следующий раз функция находится в области, Вы не увидите CustomAction больше."

Я следовал его указаниям и, Конечно, они работают.

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

</конец>

Подписаться на мой блог.

Быстрое исправление: Доступ к узлу SharePoint создает [HttpException (0x 80004005): Истекло время ожидания запроса.]

Один из моих коллег разработчик работает над проектом этой неделе и побежал в проблему времени ожидания во время работы на здании некоторые сумасшедшие веб-часть. Его веб-часть была тонкой, но "внезапно" несвязанные сайт стал очень медленно и часто истекло с этой ошибкой:

[HttpException (0x 80004005): Истекло время ожидания запроса.]

Я вошел в систему и увидел, что несколько других сайтов были просто отлично. Я подозревал, что там были некоторые скрытые веб-части на странице и с помощью надежный ?содержание = 1 метод отладки, Я на самом деле найти 11 веб-части на странице, только два из которых были видны. Еще лучше (с точки зрения let's-hope-I-find-something-ugly-here-that-I-can-fix), три из этих закрытых веб-частей имел название «Ошибка».

Я удалил эти веб-части (который сам взял удивительно много времени) и что решить эту проблему. На сегодняшний день 🙂

</конец>

Подписаться на мой блог.

Бирки Technorati:

Вызов веб-службы SSRS служб WSS / Мосс в среде FBA

Нам необходимо ссылаться на CreateSubscription»" метод веб-службы SSRS, которая размещается в FBA управляемую среду Мосс от настраиваемой веб-части. Мы постоянно получаю вариации:

  • 401: Не разрешено
  • Переместить объект

«Объект перемещен" сообщение было наиболее интересно, потому что он говорил, что «объект" (Наши службы SSRS) «переехали" для login.aspx. Это явно означает, что мы были какие-то проблемы проверки подлинности.

В конце концов я понял, что я имел Закладка запись в блоге по Роберт Гаррет, описал, как вызвать веб-службу для WSS/Мосс общего назначения живущих внутри среды выполнения агента FBA. Обратите внимание, что не удается связать непосредственно к статье (по состоянию на 06/09/08) потому что он хочет, чтобы проверить подлинность. Ссылку я предоставить приносит вам все сообщения»" Просмотр и вы найти конкретные статьи для «Доступ К Мосс веб-служб с использованием проверки подлинности на основе форм».

Вот код, который работал для нас:

ReportingService2006 rs = значение NULL; 
// Проверка подлинности Проверка подлинности auth = Новые функции Проверка подлинности(); 
автURL = "HTTP://URL/_vti_bin/Authentication.asmx";
автCookieContainer =
Новые функции CookieContainer();
LoginResult результат = автВход(«Идентификатор пользователя», «пароль»);
Если (результат.ErrorCode == LoginErrorCode.NoError) 
{
// Ошибка не, Так получите печенье.
Печенье CookieCollection = автCookieContainer.GetCookies(Новые функции URI(автURL-адрес));
Маркеры authCookie = печенье[результат.CookieName];
RS =
Новые функции ReportingService2006();
RS.URL =
"HTTP://Server/_vti_bin/ReportServer/ReportService2006.asmx";
RS.CookieContainer =
Новые функции CookieContainer();
RS.CookieContainer.Add(authCookie);
}
Попробуйте
{
  RS.CreateSubscription(отчет, extSettings, desc, eventType, matchData, parameters1);
}
улов (Исключение ex)
{
  Console.WriteLine(бывший.Message.ToString());
}

Интерпретировать вещи, чтобы работать, как это:

  • Наши веб-часть необходимо набирать службы проверки подлинности и сказать, «Эй, Тони, Это я!".
  • Служба проверки подлинности ответов: говоря, «Эй, Я знаю, что вы. Как же дети? Здесь является маркером."
  • Мы призываем службы SSRS и сказать, «Тони послал меня, Вот маркера."

</конец>

Подписаться на мой блог.

Быстрый и простой: Подготовка веб-узла с помощью объектной модели SharePoint В C#

Я попробовал искать для небольшой фрагмент кода, который бы показать, как я могу создать новый SPWeb в семействе сайтов. Я не нашел его, как быстро и легко, как я ожидал, поэтому я думал что я бы заляпать вместе немного вход по данному вопросу.

Этот код создает новый сайт вики:

 SPSite семейства сайтов;

    siteCollection = Новые функции SPSite(«http://conchang-o9l8qi");

    SPWeb w = siteCollection.OpenWeb();

    w.Webs.Add(«xyzzy", «xyzzy название",
        «xyzzy описание", 1033, SPWebTemplate.WebTemplateWIKI, ложь, ложь);

Мой первоначальный поиск не удалось, потому что я искал для фразы, как «положения веб-сайта с помощью объектной модели sharepoint" и т.п..

Если вы Поиск для «Webs.Add()", Вы найдете ряд весьма полезных в дневнике, Статьи MSDN и документации по пакету SDK, что идти в глубину на эту тему. Я определенно рекомендую Этот сайт.

</конец>

Подписаться на мой блог.

Бирки Technorati: