Ако ја алатката прави работи што не го разбираат, а потоа тоа не успее во чекор N на еден непознат број на чекори, ти си мртов во вода…
</крајот>
Ако ја алатката прави работи што не го разбираат, а потоа тоа не успее во чекор N на еден непознат број на чекори, ти си мртов во вода…
</крајот>
Бев уште еднаш изработката ЦРБ ADF датотеки со рака (така што можам да се изгради мојот "се ми тревник!" Јас) и хит оваа прекрасна грешка:
"Application definition import failed. Се случи следната грешка:"
Како што можете да видите, има грешка, но … тоа не се случува да ми каже што е тоа.
Во мојот случај, the issue turned out that I had started off with a functional ADF for a different project that connected to a database and executed a SQL query against a view. In this new project, I am calling a method on a web service. I had stripped out the DB specific stuff and added my web service stuff, но не успеа да го ажурирате <LobSystem>’s Type attribute. I switched it to "WebService" и јас среќно се пресели во понови и повеќе возбудлив увоз грешки, кои беа управувани во догледно време.
Тука е погрешен LobSystem:
<LobSystem
xmlns:Xsi =HTTP://www.w3.org/2001/XMLSchema-instance
Xsi:schemaLocation =HTTP://schemas.microsoft.com/office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Type="Database"
Version="1.0.0.0" Name="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
Type="WebService"
Version="1.0.0.0" Name="xyzzy"
xmlns="HTTP://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">
</крајот>
Ажурирање: Ова MSDN објавувате има некои интересни опсервации од JXJ врз основа на неговата, главно негативни, искуства заоѓа овој пат: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2623565&SiteID=1
We have a business scenario where we need to link two documents libraries via a common "document ID" поле.
We often use a lookup column to implements links like this. There are several drawbacks to lookup columns, од кои три се:
Поддржани од страна на ЦРБ, we can use a "business data" column type and it provides a superior search and even allows multiple columns of data to appear in list views.
Имав некои прелиминарни успех со овој пристап и планираат да се напише повеќе за него.
Ако си работел овој агол пред и имате било какви коментари, молам да ги споделите!
</крајот>
Сум работел со ЦРБ денес, coding ADF files by hand and generating myself some errors. One such error:
Апликација дефиниција увоз не успеа. Се случи следната грешка: Не можам да Вчитај Вид опишан од страна TypeName TypeDescriptor е. Името на параметарот: typeName Грешка беше затекнат или само пред Линија: '35’ и функцијата: ’20’.
Мос прикажани оваа грешка кога се обидов да се увезе ADF XML датотека.
Јас истражуван на Internets и сфатив дека бев референцирање на висока топчето пример името (од <LobSystemInstance>) во моето <TypeDescriptor> јазол, кога јас треба да референцира на висока топчето самото име (од <LobSystem>).
Погрешно:
<TypeDescriptor TypeName="Conchango.KeyValue, Висока топчето пример името" Name="KeyValue">
Коригираат:
<TypeDescriptor TypeName="Conchango.KeyValue, Висока топчето Име" Name="KeyValue">
Надевам дека ова еден заштедува некој еден час или два на време.
</крајот>
Да се претплатите на мојот блог!
I was working on a feature last week that would add some event receivers to a specific list instance. (Јас Blogged малку за таа листа приемник овде).
Користење на командната линија, Можев да го инсталирате функција без грешка (но видете подолу за скриени грешка). When I tried to deploy the feature on the site, MOSS complained of a "FileNotFoundException" грешка. This blog entry describes how I solved it.
Ова е грешка Мос Покажавме дека сме во веб прелистувачот:
Feature ‘b2cb42e3-4f0a-4380-aaba-1ef9cd526f20’ could not be installed because the loading of event receiver assembly "xyzzyFeatureReceiver_0" не: System.IO.FileNotFoundException: Could not load file or assembly ‘xyzzyFeatureReceiver_0’ или една од нејзините зависности. Системот не можат да најдат Наведената датотека.
Името на датотеката: ‘xyzzyFeatureReceiver_0’
at System.Reflection.Assembly.nLoad(AssemblyName Име, Стринг codebase, Докази assemblySecurity, Собранието locationHint, StackCrawlMark& магацинот почвата, Булова throwOnFileNotFound, Булова forIntrospection)
at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Докази assemblySecurity, StackCrawlMark& магацинот почвата, Булова forIntrospection)
at System.Reflection.Assembly.InternalLoad(Стринг assemblyString, Докази assemblySecurity, StackCrawlMark& магацинот почвата, Булова forIntrospection)
at System.Reflection.Assembly.Load(Стринг assemblyString)
at Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
WRN: Собранието обврзувачки сеча е исклучен.
Да им се овозможи собранието се врзуваат неуспех сеча, поставите на вредноста во регистарот [HKLM Software Microsoft топење!EnableLog] (DWORD) да 1.
Имајте на ум: Има некои перформанси казна поврзан со собранието се врзуваат неуспех сеча.
За да го вклучите оваа функција исклучите, отстранете ја вредноста во регистарот [HKLM Software Microsoft топење!EnableLog].
Знам како да намерно да предизвика оваа грешка: don’t install the assembly in the GAC. Но, it was in the GAC. I normally install assemblies into the GAC by dragging them into the c:\windows\assembly folder using windows explorer. I’ve never felt 100% удобно прави тоа, бидејќи јас секогаш мислев дека gacutil постои причина … so I tried that. It made no difference.
Барав на Internets и го најде овој пост: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1
На постерот се случи да биде со користење на ист корен малку на кодот (од внатре WSS книга од оваа листа) so that was a hopeful sign. Сепак, на предлог на украсување на собранието со [собранието: ] directive didn’t make sense to me. I tried it anyway and I was right. It made no difference.
Then I noticed that my class definition was not public. I made it public and that made no difference.
Следна, I went to the trouble of enabling the "assembly bind failure log" (по корисни и точни инструкции) and this is where things started to get interesting. That log shows me that the runtime is searching everywhere on that server for my assembly. It even appears to be searching for it in my medicine cabinet. Но … тоа нема да го бара за него во GAC.
I put on my winter jacket and go searching the Internets again and find that someone has had this problem too. The lengthy discussion in that posting peters off into nothing and I can’t find a solution.
I move my assembly into one of the places the log claims it’s searching and I make a little more progress. I’m rewarded with a new error in the browser when I try to activate the feature:
Failed to create feature receiver object from assembly "xyzzyFeatureReceiver_0", type "Conchango.xyzzyFeatureReceiver" за функција b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: Вредност не може да биде нула.
Името на параметарот: тип
at System.Activator.CreateInstance(Тип тип, Булова се јавни)
at System.Activator.CreateInstance(Тип тип)
at Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
Време за една последна посета на на Internets!
Овој пат јас да дознаете, очекувано доволно, that MOSS issues this error because the assembly is not in GAC.
Сакам да добијам нешто позитивно од ова и обидете се да се чувствувам малку горд што сум ги создал Бегалецот од MSIL собранија, but it’s not working. I’m just plain annoyed. I find myself muttering "chicken or the egg" под мојот здив.
I finally decide to punt. I create an entirely new project and copy/paste the code from the incredible-cloaked-from-the-GAC-assembly non-working project over to this new project. (I look for a build flag called something like "hide from assembly binding if installed in the GAC" но не може да најде еден).
Јас го инсталирате функција и активирање на тоа и … таа работи! Така, по сето она што, I had to basically ‘reboot’ my project. Ова е уште една причина зошто мразам компјутери.
I did learn something useful from this. I had been installing features using the stsadm command line all day long and been using the "-force" option out of habit. Поради некоја причина, I did not use the -force option when I installed the new project. Овој пат, Јас не, всушност,, truly forget to copy this new project’s assembly into the GAC. Како резултат на, I received that "FielNotFoundException" грешка. Овој пат, Земав од stsadm, not when I tried to activate the feature via the web browser. Така, -force actually plays two roles. It allows you to re-install an existing feature. It also allows you to install a buggy feature that cannot work at runtime by suppressing the error. It probably says as much in the help somewhere but I never noticed it.
</крајот>
===
Бонус сопруга шега:
Two male co-workers go out to lunch. One of them tells the other, "I let loose an embarrassing Freudian slip the other night."
"A Freudian slip? What’s that?"
"Well, кога ќе заврши јадење, келнерката дојде и праша како ние се допадна нашата оброци. Мислев каже, ‘I loved the chicken breast’ but instead I said ‘I loved your breasts’. I was so embarrassed."
"Ah," his co-worker replied. "I had the same thing happen to me this weekend with my wife. We were eating breakfast I meant to ask her to pass the butter, но наместо тоа, јас извикав на нејзината, ‘You ruined my life!""
</крајот>
Ажурирање (04/08/08): I seem to have solved this problem. From the command line, I ran "c:\WINDOWS system32 lodctr / Р" како за влез зборуваме за InstallShield проблеми и дека се чини дека го имаат решено за мене.
Имам забележано дека во последно време, my desktop/server fan never turns off. I know it used to turn off. I took a moment to check it out noticed that the a VMware process was running a consistent 20% utilization on one of the CPU’s. I checked the event log and saw these errors in the application log happening dozens of times per minute:
Windows не може да се бутира растеглива контра DLL UGatherer, првиот DWORD на податоци дел е грешка на Windows код.
Windows не може да се бутира растеглива контра DLL UGTHRSVC, првиот DWORD на податоци дел е грешка на Windows код.
Windows не може да се бутира растеглива контра DLL MSSCNTRS, првиот DWORD на податоци дел е грешка на Windows код.
Ако јас се вежба во деталите на една од тие пораки, Јас се добие оваа:
Извор: Perflib
Тип: Грешка
Категорија: Никој
Настан проект 1023
I did some research and there was some indication it could be a permission problem in terms of access to the DLLs in question. I played around with that stuff but could not affect things in a positive way so I gave up on that.
VMware биле мене Досаѓање за вршење ажурирање за сосема извесно време, па јас jotted надолу верзија имав инсталирано (apparently "1.0.1 build 29996") and did the update. This upgraded me to v1.04. За жал, тоа не го поправат проблемот.
I can stop the insane number of messages going to my application log if I shut down a service named "VMware Authorization Service". This prevents me from using the VMware software, па … not such a great option.
На домаќинот оперативен систем е Windows XP 64 малку.
Јас не мислам дека ова отсекогаш се случи, но јас не се сеќавам некој посебен настан што би можело да доведе до тоа.
Ова е причината зошто јас мразам компјутери.
</крајот>
Ажурирање: This works but there are significant limitations which are described in the comments. This may still be useful in some cirumstances.
Ажурирање 2: Во мојот тековниот проект, users always upload documents. Како резултат на, I don’t run into a problem where MS Word is running and thinks that the file was renamed on it. I did run into a problem, "the file was modified by someone else" and solved this via a simple semaphore type flag. Users need to change a meta data field from its default value to something else. The itemupdated() приемник изгледа за е валидна вредност таму пред всушност извршување на преименување и оттогаш, I have not had any problems. Your mileage may vary.
I have a client requirement to change the name of files uploaded to a specific document library to conform with a particular naming convention. The API does not provide a "rename()" метод. Наместо, ние ги користиме "MoveTo(…)". Here is a minimal bit of code to accomplish this:
јавноста избегне поништат ItemAdded(SPItemEventProperties својства) { Spfile ѓ = properties.ListItem.File; f.MoveTo(properties.ListItem.ParentList.RootFolder.Url + "/xyzzy.doc"); f.Update(); } |
The only tricky bit is the "properties.ListItem.ParentList.RootFolder.Url". The MoveTo() method requires a URL. That mashed up string points me to the root folder of my current document library. This allows me to avoid any hard coding in my event receiver.
Ова е многу повеќе корисни верзија која го прави истото, but assigns the name of the file to "Title":
јавноста избегне поништат ItemAdded(SPItemEventProperties својства) { DisableEventFiring(); // Му ја додели титулата на оваа точка до името на датотеката се. // ЗАБЕЛЕШКА: Оваа задача мора да се случи пред ние менувате самата датотека. // Повикувајќи ажурирање() на spfile чини да се поништи имот во // извесна смисла. Updates to "Title" не успеа до таа промена (и ажурирање() јавете се) // беа преместени во предниот дел на промена на името на датотеката. properties.ListItem["Title"] = Properties.ListItem.File.Name; properties.ListItem.Update(); Spfile ѓ = properties.ListItem.File; // Добие продолжување на датотеката. Ние треба дека подоцна. низа spfileExt = нови FileInfo(f.Name).Продолжување; // Преименувајте ја датотеката за да проект на елемент во листата и користи ја наставката да се задржи // дека дел од неа непроменети. f.MoveTo(properties.ListItem.ParentList.RootFolder.Url + "/" + properties.ListItem["ID"] + spfileExt); // Извршат во движење. f.Update(); EnableEventFiring(); } |
А колеги, "Mark", has started up a potentially interesting newsgroup discussion focusing on "establishing excellent SharePoint Governance from the start" за 35,000 корисник на животната средина.
Дискусијата е тука: http://groups.google.com/group/microsoft.public.sharepoint.portalserver/browse_thread/thread/6d9a738d981af772/1c390b15c5407db6?#1c390b15c5407db6
Поп на повеќе и да придонесе!
</крајот>
I’m still in the habit of crafting my feature XML files by hand since it’s all quite new to me. I don’t want to rely on a front-end tool that does stuff I don’t understand (тој рече дека како што тој напишал блог запис со користење на алатката што тој не разбира).
Денес, I was trying to add a custom action to the site settings but it just wouldn’t show up. I could install the feature and see it in the site features, но кога ќе го активира (без грешка) тоа едноставно не ќе се појави на опаѓачкото мени.
I finally realized that I misspelled "SharePoint" во Локација атрибут на <CustomAction> јазол. This is the bad elements.xml file:
<?XML верзија="1.0" кодирање="UTF-8" ?> <Елементи xmlns="HTTP://schemas.microsoft.com / SharePoint /"> <CustomAction Id="SiteActionsToolbar" GroupId="SiteActions" Локација="Microsoft.Sharepoint.StandardMenu" Секвенца="100" Наслов="Здраво!" Опис="Сопствени мени акција додаде преку функција." ImageUrl="_layouts / слики / 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> </Елементи> |
That one took me a good two hours to figure out 🙂
И јас земам утеха во фактот дека некој ден во иднина, Ќе бидете во можност да се каже со убедување, "back in the day, Морав да одиме три милји до ридот во снегот (бос!) in order to deploy a custom feature to MOSS. You kids, не знаеш колку е лесно да го имаат! Get off my lawn!"
Не можам да дочекам.
</крајот>