Если инструмент делает вещи вы не понимаете, и тогда она не сможет в шаге n неизвестное количество шагов, ты мертв в воде…
</конец>
Если инструмент делает вещи вы не понимаете, и тогда она не сможет в шаге n неизвестное количество шагов, ты мертв в воде…
</конец>
Я еще раз разработки BDC ADF файлов вручную (так что я могу построить мое "сойдите моего газон!" CRED) и хит этой прекрасной ошибка:
«Ошибка импорта определения приложения. Произошла следующая ошибка:"
Как вы можете видеть, Произошла ошибка, но … Это не будет сказать мне то, что он.
В моем случае, вопрос оказалось, что я начал с функциональной ADF для другого проекта, который подключен к базе данных и выполняется SQL-запрос для представления. В этом новом проекте, Я звоню метода веб-службы. Я раздели DB конкретные вещи и добавил мои веб-службы вещи, Однако не удалось обновить <Недопустимый>в атрибут type. Я перешел на «WebService" и я счастливо перешёл ошибки импорта новых и более интересных, которые были обработаны в свое время.
Вот так недопустимый:
<Недопустимый
xmlns:xsi =HTTP://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation =HTTP://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Тип = "базы данных"
Версия = "1.0.0.0" Имя = "xyzzy"
xmlns ="HTTP://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">
Это правильно:
<Недопустимый
xmlns:xsi =HTTP://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation =HTTP://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Тип = "WebService"
Версия = "1.0.0.0" Имя = "xyzzy"
xmlns ="HTTP://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">
</конец>
ОБНОВЛЕНИЕ: Это размещение MSDN имеет несколько интересных наблюдений от JXJ, основанный на его, главным образом отрицательные, опыт, спускаясь этот путь: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2623565&SiteID=1
У нас есть бизнес-сценарий, где нам необходимо связать две библиотеки документов через общий "Идентификатор документа" поле.
Мы часто использовать столбец подстановок для реализует ссылки, как это. Есть несколько недостатков для столбцов подстановки, три из которых являются:
При поддержке BDC, Мы можем использовать «бизнес-данных" тип столбца и он обеспечивает улучшенный поиск и даже позволяет несколько столбцов данных, которые отображаются в представлениях списка.
Я имел некоторые предварительные успех с этим подходом и планируете написать об этом больше.
Если вы уже работал этот угол до и есть какие-либо комментарии, Пожалуйста, поделитесь!
</конец>
Я работала с BDC сегодня, кодирование ADF файлов вручную и генерации себя некоторые ошибки. Одна такая ошибка:
Импорт определения приложения не удалось. Произошла следующая ошибка: Не удалось загрузить тип охарактеризован TypeDescriptor в TypeName. Имя параметра: typeName ошибка была обнаружена на или как раз перед строкой: ' 35’ и позиция: «20».
Мосс появится эта ошибка, когда я пытался импортировать XML ADF-файла.
Я исследовал Интернет и обнаружил, что я ссылается на имя экземпляра LOB (от <LobSystemInstance>) в моей <Дескриптор типа> узел когда я должен ссылка само имя LOB (От <Недопустимый>).
Неправильно:
<Дескриптор типа TypeName="Conchango.KeyValue, Имя экземпляра типа LOB" Имя = «KeyValue»>
Исправить:
<Дескриптор типа TypeName="Conchango.KeyValue, Имя LOB" Имя = «KeyValue»>
Надеюсь, что это один сохраняет кто-то через час или два времени.
</конец>
Я работал на функцию на прошлой неделе, что бы добавить некоторые приемники событий в определенный экземпляр списка. (Я blogged немного об этом списка приемник здесь).
Использование командной строки, Я мог бы установить функцию с без ошибок (Но смотрите ниже скрытые ошибки). Когда я попытался развернуть функцию на сайте, Мосс жаловался на "FileNotFoundException" Ошибка. Эта запись в блоге описывает, как я решил ее.
Это ошибка, которая Мосс показал мне в веб-браузере:
Функция ' b2cb42e3-4f0a-4380-aaba-1ef9cd526f20’ не может быть установлен, так как загрузка событий приемника Ассамблеи "xyzzyFeatureReceiver_0" не удалось: System.IO.FileNotFoundException: Не удалось загрузить файл или сборку ' xyzzyFeatureReceiver_0’ или один из его зависимостей. Система не может найти указанный файл.
Имя файла: ' xyzzyFeatureReceiver_0’
в System.Reflection.Assembly.nLoad(AssemblyName имя файла, Строки кода, Свидетельства assemblySecurity, LocationHint Ассамблея, StackCrawlMark& stackMark, Логическое throwOnFileNotFound, Логическое forIntrospection)
в System.Reflection.Assembly.InternalLoad(AssemblyName параметр assemblyRef, Свидетельства assemblySecurity, StackCrawlMark& stackMark, Логическое forIntrospection)
в System.Reflection.Assembly.InternalLoad(Строки параметр assemblyString, Свидетельства assemblySecurity, StackCrawlMark& stackMark, Логическое forIntrospection)
в System.Reflection.Assembly.Load(Строки параметр assemblyString)
в Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
ПРЕДУПРЕЖДЕНИЕ: Включено ведение журнала привязки Ассамблея OFF.
Для включения журнала отказа Ассамблеи bind, Установите значение реестра [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) Кому 1.
Примечание: Есть некоторые производительности, связанные с регистрацией отказа Ассамблеи bind.
Чтобы отключить эту функцию, Удалите значение реестра [HKLMSoftwareMicrosoftFusion!EnableLog].
Я знаю, как намеренно вызвать эту ошибку: не устанавливать сборку в глобальный кэш сборок. Но, Он был в GAC. Я обычно установить сборки в GAC, перетащив их в c:\windowsassembly папку с помощью проводника windows. Я никогда не чувствовал 100% комфортабельный делать, потому что я всегда думал что gacutil существовала по причине … так что я попытался что. Он сделал никакой разницы.
Я искал Интернет и нашел этот пост: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1
Плакат случилось с использовать же корня кусок кода (из WSS внутри книги из этого списка) так что было обнадеживающим. Однако, предложение украшения с Ассамблее [Ассамблея: ] Директива не имеет смысла для меня. Я попробовал его в любом случае, и я был прав. Он сделал никакой разницы.
Затем я заметил, что моя определение класса не было общественного. Я сделал это общественность, и что сделал никакой разницы.
Следующая, Я пошел на проблемы предоставления журнал неудачи bind Ассамблея"" (После полезной и точной инструкции) и это то, где вещи начали получать интересные. Журнал показывает мне, что среда выполнения ищет повсюду на этом сервере для моей сборки. Кажется, даже искать его в моей аптечке. Но … Он не будет его поиск в глобальном кэше сборок.
Я положил на моем Зимняя куртка и идти поиск Internets снова и найти, что кто-то имел эту проблему слишком. Продолжительные дискуссии в этой публикации Питерс покинуть в ничто, и я не могу найти решение.
Я перехожу мою сборку в одно из мест, где журнал утверждает, это поиск и немного больше прогресса. Я я вознаграждены с новой ошибки в браузере, когда я пытаюсь активировать функцию:
Не удается создать объект функция приемника от Ассамблеи «xyzzyFeatureReceiver_0», Тип "Conchango.xyzzyFeatureReceiver" для функции b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: Значение не может быть пустым.
Имя параметра: Тип
в System.Activator.CreateInstance(Тип type, Логический параметр nonPublic)
в System.Activator.CreateInstance(Тип type)
в Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
Время одной последней поездки в Интернет!
На этот раз я узнать, достаточно предсказуемо, этой ошибки Мосс потому, что данная сборка не находится в глобальном кэше сборок.
Я хочу получить что-то положительное из этого и пытаются чувствовать себя немного горд, что я создал Беглец сборок MSIL, но он не работает. Я просто раздражает. Я считаю себя бормотание "курица или яйцо" под мое дыхание.
Я, наконец, решили Пунт. Я создать совершенно новый проект и копировать/вставить код из incredible-cloaked-from-the-GAC-assembly проекта не работающие над этот новый проект. (Я смотрю на сборки флага, под названием что-то вроде "скрыть от Ассамблеи, в том случае, если установлена в глобальный кэш сборок" но не могу найти один).
Я установить и активировать ее и … Он работает! Таким образом, После всего этого, Мне пришлось в основном ' перезагрузки’ Мой проект. Это еще одна причина, почему я ненавижу компьютеров.
Я узнал что-то полезное из этого. Я была установка компонентов с использованием командной строки stsadm весь день и были с использованием "-сила" вариант по привычке. По некоторым причинам, Я не использовать параметр - force когда я установил новый проект. На этот раз, Я сделал на самом деле, действительно, забудьте скопировать этот новый проект сборки в GAC. В результате, Я получил "FielNotFoundException" Ошибка. На этот раз, Я получил его от stsadm, не тогда, когда я пытался активировать функцию через веб-браузер. Таким образом, -сила на самом деле играет две роли. Это позволяет повторно установить существующий компонент. Она также позволяет установить функцию багги, которая не может работать во время выполнения путем подавления ошибки. Он, вероятно, говорит столько в помощь где-то, но я не заметил.
</конец>
===
Бонус жена шутка:
Два коллег-мужчин выходят на обед. Одна из них рассказывает другой, "Я позволить потерять неловко Фрейду другой ночью."
"Фрейду? Что это?"
"Хорошо, когда мы закончили еды, официантка пришел и спросил, как мы любили наши блюда. Я имел в виду сказать, ' Я любил куриные грудки’ но вместо этого я сказал, «Я любил вашу грудь». Я был смущен, так."
"Ах," его коллега ответил. «Я имел то же самое случилось со мной в эти выходные с моей женой. Мы ели завтрак, который я имел в виду просить ее пройти масло, но вместо этого я кричал на нее, ' Вы разрушили мою жизнь!’"
</конец>
ОБНОВЛЕНИЕ (04/08/08): Я, кажется, решить эту проблему. Из командной строки, Я побежал "c:\windowssystem32lodctr/r" Согласно запись говорить о InstallShield, как представляется, решили его для меня проблем и что.
Я заметил, что в последнее время, мой рабочий стол/сервер вентилятора никогда не отключается. Я знаю, что он используется для отключения. Я взял время, чтобы проверить его вне заметил, что VMware процесс запущен последовательной 20% использование на одном из процессоров. Я проверил журнал событий и увидел эти ошибки в журнале приложений происходит в десятки раз в минуту:
Не удалось загрузить расширяемых счетчиков DLL UGatherer, в разделе данных DWORD находится код ошибки Windows.
Не удалось загрузить расширяемых счетчиков DLL UGTHRSVC, в разделе данных DWORD находится код ошибки Windows.
Не удалось загрузить расширяемых счетчиков DLL MSSCNTRS, в разделе данных DWORD находится код ошибки Windows.
Если я Просверлите в подробности одного из этих сообщений, Я получаю это:
Источник: Perflib
Тип: Ошибка
Категория: Нет
Код события 1023
Я сделал некоторые исследования, и там было некоторое представление, что это может быть разрешение проблемы с точки зрения доступа к библиотекам DLL в вопросе. Я играл с этой вещи, но не может повлиять на вещи в положительную сторону, поэтому я дал вверх на том.
VMware нытье меня об обновлении на довольно некоторое время, так что я jotted вниз версии я был установлен (по-видимому «1.0.1 build 29996») и сделал обновление. Это меня повышен до v1.04. К сожалению, Это не исправить выпуск.
Я могу остановить безумный количество сообщений, собирается мой журнал приложений, если я закрыть службы с именем «VMware авторизации службы». Это предотвращает меня от использования программного обеспечения VMware, так что … не такой большой вариант.
Базовая операционная система-Windows XP 64 бит.
Я не думаю, что это случилось всегда, но я не помню какой-либо конкретного события, которые могли привести к нему.
Вот почему я ненавижу компьютеров.
</конец>
ОБНОВЛЕНИЕ: Это работает, но есть существенные ограничения, которые описаны в комментарии. Это все еще может быть полезным в некоторых свержению.
ОБНОВЛЕНИЕ 2: В моем текущем проекте, Пользователи всегда загружать документы. В результате, Я не столкнуться с проблемой, где MS Word выполняется и думает, что файл был переименован на нем. Я побежал в проблему, "файл был изменен кем-то еще" и решить это через простой семафор типа флаг. Пользователи должны изменить поле данных мета от его значения по умолчанию для что-то другое. Itemupdated() приемник ищет допустимое значение до фактического выполнения rename и с тех пор, У меня не было никаких проблем. Ваш пробег может варьироваться.
У меня есть клиент требование, чтобы изменить имя файлов, загруженных в определенной библиотеке документов в соответствие с конкретной именования. API не поддерживает переименование»()" метод. Вместо этого, Мы используем "MoveTo(…)". Вот немного минимального кода для выполнения этой:
государственные Переопределение void ItemAdded(SPItemEventProperties Свойства) { SPFile f = свойства.ListItem.File; f.moveTo(Свойства.ListItem.ParentList.RootFolder.Url + "/xyzzy.doc"); f.Update(); } |
Только хитростью является «свойства. ListItem.ParentList.RootFolder.Url». MoveTo() метод требует URL-адреса. Это пюре строка указывает меня к корневой папке моей текущей библиотеки документов. Это позволяет мне избежать любого жесткого кодирования в моем приемник событий.
Это более полезным версия, которая делает то же самое, но присваивает имя файла «Титул»:
государственные Переопределение void ItemAdded(SPItemEventProperties Свойства) { DisableEventFiring(); // Присвойте название данного пункта на имя самого файла. // ПРИМЕЧАНИЕ: Это назначение должно иметь место до того, как мы изменить сам файл. // Вызов обновление() на SPFile кажется недействительным свойства в // Некоторые чувства. Обновления для "название" не удалось пока что изменения (и обновление() звонок) // были перемещены за изменения в имени файла. Свойства.ListItem["Название"] = Свойства.ListItem.File.Name; Свойства.ListItem.Update(); SPFile f = свойства.ListItem.File; // Получить расширение файла. Нам нужно, что позже. Строка spfileExt = Новые функции FileInfo(f.Name).Расширение; // Переименуйте файл Идентификатор элемента списка и использовать расширение файла для сохранения // Эта часть его нетронутым. f.moveTo(Свойства.ListItem.ParentList.RootFolder.Url + "/" + Свойства.ListItem["ID"] + spfileExt); // Совершить переезд. f.Update(); EnableEventFiring(); } |
Научный сотрудник, «Марк», начало потенциально интересных новостей обсуждение упором на «установление отличные управления SharePoint с самого начала" для 35,000 среда пользователя.
Обсуждение находится здесь: http://groups.google.com/group/microsoft.public.sharepoint.portalserver/browse_thread/thread/6d9a738d981af772/1c390b15c5407db6?#1c390b15c5407db6
Поп на течение и способствовать!
</конец>
Я до сих пор в привычку Крафта моя функция XML-файлы вручную, так как это все довольно новый для меня. Я не хочу полагаться на внешний инструмент, я не понимаю, что делает вещи (Он сказал, как он написал в блоге запись, с помощью инструмента, который он не понимает).
Сегодня, Я пытался добавить настраиваемое действие для настройки сайта, но он просто не показать. Я мог бы установить функцию и увидеть его в возможности сайта, но когда я активировал (без ошибок) Он просто не будет отображаться в раскрывающемся меню.
Я наконец понял, что я неправильно "SharePoint" в атрибуте местоположения <CustomAction> узел. Это файл elements.xml Бад:
<?XML Версия="1.0" кодирование="UTF-8" ?> <Элементы xmlns="HTTP://schemas.Microsoft.com/SharePoint/"> <CustomAction ID="SiteActionsToolbar" GroupId="SiteActions" Местоположение="Microsoft.SharePoint.StandardMenu" Последовательность="100" Название="Привет!" Описание="Пользовательское меню действий, добавить через функцию." ImageUrl="_layouts/images/menuprofile.GIF"> <UrlAction URL-адрес="HTTP://www.Xyzzy.com"/> </CustomAction> </Элементы> |
Хороший:
<?XML Версия="1.0" кодирование="UTF-8" ?> <Элементы xmlns="HTTP://schemas.Microsoft.com/SharePoint/"> <CustomAction ID="SiteActionsToolBar" GroupId="SiteActions" Местоположение="Microsoft.SharePoint.StandardMenu" Последовательность="100" Название="Привет!" Описание="Пользовательское меню действий, добавить через функцию." > <UrlAction URL-адрес="HTTP://www.Xyzzy.com"/> </CustomAction> </Элементы> |
На это у меня ушло два часа
Я пользуюсь утешение в том, что когда-нибудь в будущем, Я буду в состоянии сказать с уверенностью, "назад в день, Мне пришлось ходить в трех милях вверх по холму в снегу (босиком!) чтобы развернуть пользовательские функции Мосс. Вы дети, Вы не знаете, как легко она у вас! Сойдите мой газон!"
Не может ждать.
</конец>