Ако инструментът прави неща Вие не разбирате и след това тя се провали при стъпка n на неизвестен брой стъпки, Вие сте мъртъв във водата…
</край>
Ако инструментът прави неща Вие не разбирате и след това тя се провали при стъпка n на неизвестен брой стъпки, Вие сте мъртъв във водата…
</край>
Отново е изработване BDC ADF файлове на ръка (така че могат да изградят ми "Махни се от моравата ми!" CRED) и удари тази прекрасна грешка:
"Приложение дефиниция неуспешно импортиране. Възникна следната грешка:"
Както можете да видите, там е грешка, Но … Тя е няма да ми кажете какво е.
В моя случай, проблема се оказа, че бях тръгнал на разстояние с функционални ADF за различен проект, свързан с база данни и изпълнява SQL заявка срещу изглед. В този нов проект, Аз призовавам метод на уеб услуга. Имах жилки на DB конкретни неща и добавя моя уеб услуга неща, но не успя да актуализира <LobSystem>на тип на атрибут. Аз шибалка то към "уеб услугата" и аз щастливо се премести към по-нови и по-вълнуващи внос грешки, които са били обработени в своевременно.
Тук е грешен LobSystem:
<LobSystem
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">
Това е правилна:
<LobSystem
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">
</край>
АКТУАЛИЗИРАНЕ: Този MSDN постинг има някои интересни наблюдения от JXJ, въз основа на неговата, предимно отрицателни, опит става по този път: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2623565&SiteID=1
Ние имаме бизнес сценарий, където трябва да свърже две библиотеки с документи чрез обща "ИД на документ" поле.
Ние често се използва справочна колона в сечива връзки като това. Има няколко недостатъци на колони за справки, три от които са:
Подкрепена от BDC, Ние можем да използваме "бизнес данни" тип колона и тя осигурява високо търсене и дори позволява няколко колони с данни, за да се появи в списъка изгледи.
Аз съм имал някои предварителни успех с този подход и намерение да пиша повече за това.
Ако сте работили този ъгъл преди и има някакви коментари, Моля, Споделете!
</край>
Аз бях работа с BDC днес, ADF файлове за кодиране на ръка и генериране на себе си някои грешки. Една такава грешка:
Неуспешно импортиране на дефиниция на приложението. Възникна следната грешка: Не може да зареди тип, описан от TypeDescriptor на TypeName. Име на параметър: typeName грешка възникна в или точно преди линия: "35’ и позиция: "20".
Мос показва тази грешка, когато аз се опитах да импортиране на ADF XML файл.
Аз проучени Internets и е установено, че бях съотнасяне името на екземпляр на LOB (от <LobSystemInstance>) в моя <TypeDescriptor> възел, когато трябва да са посочени името на LOB, самата (от <LobSystem>).
Грешен:
<TypeDescriptor TypeName="Conchango.KeyValue, Име на екземпляр на LOB" Име = "KeyValue">
Коригиране на:
<TypeDescriptor TypeName="Conchango.KeyValue, Име на LOB" Име = "KeyValue">
Надежда този един спасявам някой, един час или два от време.
</край>
Аз работех по функция миналата седмица, която ще добави някои събитие получател към екземпляр на конкретен списък. (Аз blogged малко за този списък приемника тук).
С помощта на командния ред, Мога да инсталирате компонента с грешка (но вижте по-долу за скрит грешка). Когато се опитах да разположи функцията на сайта, МОС се оплакват от FileNotFoundException"" грешка. Този блог пост описва как аз решавам то.
Това е грешка, която МОС ми показа в web браузъра:
Функцията "b2cb42e3-4f0a-4380-aaba-1ef9cd526f20’ не може да се инсталира, защото на товаренето на монтаж на приемници на събития "xyzzyFeatureReceiver_0" Неуспешно: System.IO.FileNotFoundException: Не може да зареди файл или сглобяване "xyzzyFeatureReceiver_0’ или един от нейните колонии. Системата не може да намери указания файл.
Име на файл: "xyzzyFeatureReceiver_0’
в System.Reflection.Assembly.nLoad(Име на AssemblyName, CodeBase на низ, Доказателства 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()
WRN: Регистрирането на обвързването на събранието е включен OFF.
За да разрешите на регистриране на отказ за събрание bind, Задайте стойност на системния регистър [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) за да 1.
Бележка: Има някои производителността санкция, свързани със сглобяване bind грешка регистриране.
За да изключите тази функция, премахване на стойността в системния регистър [HKLMSoftwareMicrosoftFusion!EnableLog].
Аз знам как да причиняват съзнателно тази грешка: не инсталирайте събрание в GAC. Но, Тя е в GAC. Обикновено инсталирате възли в GAC плъзгайки ги в c:\windowsassembly папка, като използвате windows explorer. Никога не съм се чувствал 100% удобни го направи, защото винаги мислех, че gacutil съществувал по причина … така че аз се опитах това. Го прави никаква разлика.
Аз търсили Internets и намери този пост: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1
Плаката се случи да използва същия корен бит на код (от вътрешната WSS книга от този списък) така че е надежда знак. Въпреки това, предложение на decorating общото събрание със [събрание: ] Директива не правят смисъл за мен. Аз все пак съм опитвал и бях прав. Го прави никаква разлика.
След това забелязах, че моята дефиниция на клас не е публично. Аз го публично и че прави никаква разлика.
Следващ, Отидох да съдейства "събрание bind неизправност регистър на" (след полезен и точни инструкции предоставена) и това е, когато нещата започнаха да се получи интересно. Че вляза ми показва, че runtime е търсене навсякъде на този сървър за моя монтаж. Тя дори изглежда да се търси за нея в моя кабинет лекарство. Но … той няма да го потърсите в GAC.
Сложи на моите зимно яке и отидете търсене Internets отново и откриете, че някой е имал този проблем също. Продължителни дискусии в това публикуване Питърс разстояние в нищо и не мога да намеря решение.
Аз движа ми събрание в едно от местата, log твърди е търсене и направя малко по-голям напредък. Съм възнаградени с нова грешка в браузъра, когато се опитате да активирате функцията:
Не можа да създаде обект за приемник на функцията от събрание "xyzzyFeatureReceiver_0", Въведете "Conchango.xyzzyFeatureReceiver" за функцията b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: Стойността не може да бъде нулев.
Име на параметър: тип
в System.Activator.CreateInstance(Тип тип, Булева nonPublic)
в System.Activator.CreateInstance(Тип тип)
в Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
Време за един последен пътуване до Internets!
Този път разберете, достатъчно предсказуемо, че Мос издава тази грешка, защото общото събрание не е в GAC.
Искам да получи нещо положителни извън това и се опитайте да се чувства малко горд, че съм създаден Fugitive MSIL възли, но това не е работа. Аз съм само обикновен безпокоя. Да намеря себе си мърмори "кокошката или яйцето" под моето дъх.
Най-накрая реши да шута. Създам един изцяло нов проект и Копирайте кода от проекта за incredible-cloaked-from-the-GAC-assembly не работят над към този нов проект. (Аз гледам за билд флаг, наречени нещо като "Скрий от събрание, задължителни, ако инсталирани в GAC" но не може да намери една).
I инсталирате компонента и да го активирате и … тя работи! Така, след всичко това, Аз трябваше да основно "рестартиране’ Моят проект. Това е още една причина, защо мразя компютри.
Аз научих нещо полезно от това. Са слагали функции, които използват stsadm заповядвам линия през целия ден и използвали "-сила" опция от вредния навик. По някаква причина, Не използвайте опцията - force когато Инсталирах новия проект. Този път, Направих действително, наистина забравяме да копирате този нов проект събрание в GAC. Като резултат, Получих че "FielNotFoundException" грешка. Този път, Имам го от stsadm, не и когато се опитах да активирате функцията чрез web браузър. Така, -сила всъщност играе две роли. Тя ви позволява да инсталирате отново съществуваща функция. Той също така ви позволява да инсталирате бъги функция, която не може да работи по време на изпълнение чрез потискане грешка. То вероятно казва колкото в помощта някъде, но аз никога не го е забелязал.
</край>
===
Бонус жена шега:
Двама мъже колеги да излезем на обяд. Един от тях казва на другите, "Аз пускам неудобно неволна грешка онази вечер."
"Неволна грешка? Какво е това?"
"Добре, когато сме готови да яде, Сервитьорката дойде и попита как ние хареса нашата храна. Исках да кажа, "Обичах пилешки гърди’ но вместо това каза: "Обичах гърдите си". Бях толкова неудобно."
"Ах," неговият колега отговори. "Имах същото нещо се случи с мен този уикенд с жена ми. Ние бяхме яде закуска, исках да я помоля да премине на маслото, но вместо това извиках към нея, "Ти съсипа живота ми!’"
</край>
АКТУАЛИЗИРАНЕ (04/08/08): Аз изглеждам към имам решавам този проблема. От командния ред, Аз p.t. от Run "c:\windowssystem32lodctr/r" Според запис говори за InstallShield проблеми и това изглежда да са го решават за мен.
Сте забелязали, че напоследък, никога не ми плот/сървър фен се изключва. Знам, че той използва за да изключите. Взех малко време да се провери го забелязах, че VMware процес е действал в съответствие 20% използване на един от на Процесора. Проверка на събитията и видях тези грешки в регистрационния файл на приложението, случва десетки пъти в минута:
Windows не може да зареди разтегателен брояч DLL UGatherer, Първият DWORD в секцията данни е кода за грешка на Windows.
Windows не може да зареди разтегателен брояч DLL UGTHRSVC, Първият DWORD в секцията данни е кода за грешка на Windows.
Windows не може да зареди разтегателен брояч DLL MSSCNTRS, Първият DWORD в секцията данни е кода за грешка на Windows.
Ако аз тренировка в детайлите на един от тези съобщения, Аз добивам този:
Източник: Perflib
Тип: Грешка
Категория: Няма
Събитие ID 1023
Направих някои изследвания и е имало някаква индикация, тя може да бъде разрешение проблем по отношение на достъпа до въпросните DLLs. Играе с тези неща, но не могат да повлияят неща в един позитивен начин, така аз отказах на това.
VMware е са ме заядлив за извършване на актуализация за известно време, така че аз jotted определени версия е инсталиран (очевидно "1.0.1 Строя 29996") и did определителен член update. Това ме обновен до v1.04. За съжаление, не отстрани проблема.
Може да спре луд брой съобщения, ще ми регистрационния файл, ако аз затварям голо възвишение служба име "VMware разрешение служба". Това ми пречи да използват VMware софтуер, така … не такава чудесна възможност.
Операционната система е Windows XP 64 малко.
Аз не мисля, че това винаги е случило, но аз не си спомням всяко специално събитие, които биха довели до него.
Ето защо мразя компютри.
</край>
АКТУАЛИЗИРАНЕ: Това работи, но има съществени ограничения, които са описани в коментарите. Това все още може да бъде полезна в някои обстоятелствата.
АКТУАЛИЗИРАНЕ 2: В сегашния си проект, Потребителите винаги качване на документи. Като резултат, Аз не тичам в проблем, когато MS Word работи и мисли, че файлът е бил преименуван на него. Аз тичам в проблем, "файлът е променен от друг" и това решени чрез проста семафор тип флаг. Потребителите трябва да промените мета данни поле от стойността й по подразбиране на нещо друго. Itemupdated() приемник търси валидна стойност там, преди действително да се извършва Преименуване и оттогава, Не съм имал никакви проблеми. Вашият километраж може да варира.
Имам клиент изискване за промяна на името на качените файлове качени в конкретен документ библиотека да се съобрази с конкретен именуване конвенция. API не предвижда "Преименуване()" метод. Вместо това, Ние използваме "Движа(…)". Тук е минимален малко код, за да постигнем това:
обществени замени невалидни ItemAdded(SPItemEventProperties имоти) { SPFile f = свойства.ListItem.File; f.MoveTo(свойства.ListItem.ParentList.RootFolder.Url + "/xyzzy.doc"); f.Update(); } |
Само сложната малко е "свойства. ListItem.ParentList.RootFolder.Url". Движа() метод изисква URL адрес. Това пюре низ точки ми в главната папка на my текущ документ библиотека. Това ми позволява да се избегне всяко твърд кодиране в моя случай приемника.
Това е по-полезен версия, която прави същото, но Задава името на файла на "Заглавието":
обществени замени невалидни ItemAdded(SPItemEventProperties имоти) { DisableEventFiring(); // Присвояване на заглавието на този елемент към името на самия файл. // ЗАБЕЛЕЖКА: Тази задача трябва да се извършва преди ние променят самия файл. // Призовава актуализация() на SPFile изглежда да се обезсили свойствата в // някои смисъл. Актуализации на "заглавие" не е до това промени (и актуализация() повикване) // са преместени пред промяната в името на файла. свойства.Елемент от списък["Заглавие"] = свойства.ListItem.File.Name; свойства.ListItem.Update(); SPFile f = свойства.ListItem.File; // Вземи разширението на файла. Че трябва по-късно. низ spfileExt = нов FileInfo(f.Name).Разширение; // Преименуване на файл за ИД на елемента от списъка и използвайте разширението на файла, за да // тази част от него непокътнати. f.MoveTo(свойства.ListItem.ParentList.RootFolder.Url + "/" + свойства.Елемент от списък["ИД"] + 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 ИД="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 ИД="SiteActionsToolBar" GroupId="SiteActions" Местоположение="Microsoft.SharePoint.StandardMenu" Последователност="100" Заглавие="Здравейте!" Описание="Персонализирано меню действия, добавено през функция." > <UrlAction URL адрес="HTTP://www.xyzzy.com"/> </CustomAction> </Елементи> |
That one took me a good two hours to figure out 🙂
Аз да утеха във факта, че някой ден в бъдеще, Аз ще бъде в състояние да каже с убеденост, "през деня, Аз трябваше да изкачват три мили Хил в снега (бос!) за да разположите потребителско свойство на Мос. Вие деца, не знаете колко лесно го има! Махни се от моравата ми!"
Не мога да чакам.
</край>