Dacă instrumentul este de a face lucruri nu înţelegeţi şi apoi nu reuşeşte în pasul n de un număr necunoscut de pași, esti mort în apă…
</scop>
Dacă instrumentul este de a face lucruri nu înţelegeţi şi apoi nu reuşeşte în pasul n de un număr necunoscut de pași, esti mort în apă…
</scop>
Am fost din nou crafting fişierelor BDC ADF de mână (aşa că am putea construi meu "cobor peluza mea!" Cred) şi a lovit această frumoasă eroare:
"Aplicarea definiţie de import nu a reușit. Eroare:"
După cum puteţi vedea, Există o eroare, dar … nu o să-mi spui ce este.
În cazul meu, problema sa dovedit că am a început cu un ADF funcţionale pentru un alt proiect care conectat la o bază de date şi a executat o interogare SQL împotriva o. În acest nou proiect, Am sunat o metoda pe un serviciu web. Am deposedat afară chestii specifice DB şi a adăugat lucrurile mele de serviciu web, dar nu a reușit să actualizeze <LobSystem>pe tip atribut. L-am trecut la "WebService" şi din fericire am mutat la erori de import mai noi şi mai incitante, care au fost manipulate în timp util.
Aici este greşit LobSystem:
<LobSystem
xmlns:XSi =http://www.w3.org/ 2001/XMLSchema-exemplu
XSi:schemaLocation =http://schemas.Microsoft.com/office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Tip = "baze de date"
Versiune = "1.0.0.0" Nume = "xyzzy"
xmlns ="http://schemas.Microsoft.com/office/2006/03/BusinessDataCatalog">
Acest lucru este corect:
<LobSystem
xmlns:XSi =http://www.w3.org/ 2001/XMLSchema-exemplu
XSi:schemaLocation =http://schemas.Microsoft.com/office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Tip = "WebService"
Versiune = "1.0.0.0" Nume = "xyzzy"
xmlns ="http://schemas.Microsoft.com/office/2006/03/BusinessDataCatalog">
</scop>
ACTUALIZARE: Această postare MSDN are câteva observaţii interesante de JXJ pe baza lui, în principal negativ, experienţele merge în jos această cale: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2623565&SiteID=1
Avem un scenariu de afaceri în cazul în care avem nevoie pentru a lega două biblioteci de documente prin intermediul comune "document ID" câmp.
Am folosesc adesea o coloană de căutare pentru a pune în aplicare link-uri ca acest lucru. Există câteva dezavantaje pentru coloanele de căutare, trei dintre care sunt:
Susţinută de BDC, putem folosi o afacere date"" tip de coloană şi oferă o căutare superioară şi de a permite chiar şi mai multe coloane de date pentru a apărea în vizualizările listă.
Am avut oarecare succes preliminare cu această abordare şi planul de a scrie mai multe despre ea.
Dacă aţi lucrat acest unghi înainte şi să aibă orice Comentarii, vă rugăm să parts!
</scop>
Am fost de lucru cu BDC astăzi, codificare ADF fişiere de mână şi generatoare de mine unele erori. O astfel de eroare:
Aplicarea definiţie importul nu a reușit. Eroare: Imposibil de încărcat Tipul descris de TypeDescriptor TypeName. Numele parametrului: typeName eroare a fost întâlnită la sau chiar înainte de linie: ' 35’ şi poziţia: "20".
MOSS afişat această eroare când am încercat să importați fișierul ADF XML.
Am cercetat Internet şi a constatat că am fost corelarea numele de exemplu LOB (la <LobSystemInstance>) în mea <TypeDescriptor> nod atunci când ar trebui să aibă de referinţă numele LOB în sine (la <LobSystem>).
Greşit:
<TypeDescriptor-ul TypeName="Conchango.KeyValue, Numele de exemplu LOB" Nume = "KeyValue">
Corecta:
<TypeDescriptor-ul TypeName="Conchango.KeyValue, LOB numele" Nume = "KeyValue">
Sper că acest lucru economiseşte cineva o oră sau două de timp.
</scop>
Am fost de lucru pe o caracteristică săptămâna trecută, care ar adăuga unele receptoare de eveniment la o anumită listă de instanţă. (I blogged un pic despre acest receptor lista aici).
Folosind linia de comanda, Am putut instala caracteristica cu nici o eroare (dar se vedea mai jos pentru eroare ascunse). Când am încercat să utilizeze caracteristica de pe site-ul, MOSS s-au plâns de "FileNotFoundException" eroare. Această intrare de blog descrie modul în care am rezolvat-o.
Aceasta este eroarea care MOSS mi-a arătat în browser-ul web:
Caracteristica ' b2cb42e3-4f0a-4380-otilia-1ef9cd526f20’ nu a fost instalat deoarece încărcarea de eveniment receptor montaj "xyzzyFeatureReceiver_0" nu a reușit: System.IO.FileNotFoundException: Nu a putut încărca fişierul sau asamblarea "xyzzyFeatureReceiver_0’ sau una dintre dependenţele sale. Sistemul nu poate găsi fişierul specificat.
Nume de fişier: "xyzzyFeatureReceiver_0’
la System.Reflection.Assembly.nLoad(AssemblyName fileName, Şir codeBase, Dovezi assemblySecurity, Adunarea locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
la System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Dovezi assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
la System.Reflection.Assembly.InternalLoad(Șir assemblyString, Dovezi assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
la System.Reflection.Assembly.Load(Șir assemblyString)
la Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
WRN: Adunarea obligatoriu de logare este transformat OFF.
Pentru a permite Adunarea obligati eşec logare, setaţi valoarea de registru [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) pentru a 1.
Notă: Există unele penalizare de performanţă asociat cu Adunarea obligati eşec logare.
Pentru a dezactiva această caracteristică, eliminaţi valoarea registry [HKLMSoftwareMicrosoftFusion!EnableLog].
Ştiu cum de a provoca în mod deliberat această eroare: nu Instalaţi ansamblul în GAC. dar, a fost în GAC. I a instala în mod normal, ansambluri în GAC trăgându-le în c:\windowsassembly folderul utilizând windows explorer. M-am simţit niciodată 100% confortabil face acest lucru pentru că am crezut întotdeauna că gacutil a existat un motiv … aşa că am încercat care. El a făcut nici o diferenţă.
Am cautat pe Internet şi a găsit acest post: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1
Poster s-a întâmplat să fie utilizând aceeaşi rădăcină pic de cod (din cartea în interiorul AAC din această listă) aşa că a fost un semn de speranţă. Cu toate acestea, sugestia de decorare Adunarea cu un [asamblare: ] Directiva nu avea sens pentru mine. Am încercat-o oricum, şi am fost dreapta. El a făcut nici o diferenţă.
Apoi am observat că definiţia mea de clasă nu a fost publică. Am făcut-o publică şi că a făcut nici o diferenţă.
Următoarea, M-am dus la probleme de a permite "Adunarea obligati eşec jurnal" (urmând instrucţiunile utile şi precise oferite) şi acest lucru este în cazul în care lucrurile au început pentru a obţine interesant. Că log Arată-mi că runtime este în căutarea peste tot pe acel server pentru Adunarea mea. Chiar pare a fi căutaţi pentru el în meu medicament cabinet. dar … Acesta nu va căuta pentru el în GAC.
Am pus pe haina mea de iarnă şi du-te în căutare Internet din nou şi găsi că cineva a avut această problemă prea. Discuţie îndelungată în care postaţi badarau oprit în nimic şi nu pot găsi o soluţie.
Muta meu de asamblare într-unul dintre locurile de jurnal susţine că este în căutarea şi face un pic mai mult progres. Eu sunt recompensat cu o nouă eroare în browser-ul atunci când încerc să activaţi caracteristica:
Imposibil de creat caracteristică receptor obiect de asamblare "xyzzyFeatureReceiver_0", tip "Conchango.xyzzyFeatureReceiver" pentru caracteristica b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: Valoarea nu poate fi nul.
Numele parametrului: tip
la System.Activator.CreateInstance(Tip tip, NonPublic booleene)
la System.Activator.CreateInstance(Tip tip)
la Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
Timp pentru o ultima călătorie la internet!
Acest timp am afla, destul de previzibil, că MOSS probleme această eroare pentru că adunarea nu este în GAC.
Vreau pentru a obţine ceva pozitiv de acest lucru şi să încerce să se simtă un pic de mândru că am creat Fugar MSIL ansamblurilor de, dar nu este de lucru. Eu sunt pur şi simplu supărat. Eu personal mormăind "pui sau ouă" sub respiraţia mea.
În cele din urmă decid să punt. Am crea un proiect nou şi copiaţi/lipiţi codul la incredible-cloaked-from-the-GAC-assembly non-de lucru de proiect peste la acest nou proiect. (Mă uit pentru un pavilion de construi numit ceva de genul "Ascundere la Adunarea obligatoriu dacă instalat în GAC" dar nu pot găsi unul).
Am caracteristică a instala şi a activa şi … funcţionează! Deci, după ce toate că, Trebuit să practic ' reboot’ proiectul meu. Acest lucru este un alt motiv de ce urasc calculatoare.
Am făcut-învăţa ceva util din aceasta. Am avut fost instalarea caracteristici folosind linia de comanda stsadm toată ziua şi fost folosind "-vigoare" opţiunea din obişnuinţă. Pentru unii motiv, Nu am folosit - opţiune vigoare atunci când am instalat noul proiect. de data aceasta, Am făcut de fapt, cu adevărat uitaţi să copiaţi acest nou proiect de asamblare în GAC. Ca rezultat al, Am primit "FielNotFoundException" eroare. de data aceasta, Am luat de la stsadm, nu atunci când am încercat pentru a activa caracteristica prin intermediul browser-ul web. Deci, -vigoare, de fapt, joacă două roluri. Vă permite să re-a instala o caracteristică existente. De asemenea, vă permite să instalaţi o caracteristică trăsură pentru două persoane, care nu poate lucra în timpul rulării prin suprimarea eroare. Se spune, probabil, la fel de mult în ajutorul undeva, dar nu am observat-o.
</scop>
===
Glumă de soţia bonus:
Două sex masculin co-lucrătorilor se duc la masa de prânz. Una dintre ele spune alte, "Să pierde un slip freudiene jenant de altă noapte."
"O freudiene alunecare? ce este acesta?"
"Ei bine, Când am terminat mâncând, chelnerita a venit şi a întrebat cum ne-a placut mesele noastre. Vroiam să spun, "Te-am iubit de piept de pui’ dar în schimb i-am spus "Am iubit sanii tai". Am fost atât de jenat."
"Ah," sa co-lucrător a răspuns:. "Am avut acelaşi lucru se întâmpla pentru mine acest weekend cu soţia mea. Am fost mananca micul dejun am vrut pentru a cere-o să treacă unt, dar in schimb am ţipat la ei, "Ai ruinat viaţa mea!’"
</scop>
ACTUALIZARE (04/08/08): I se pare că au rezolvat această problemă. Linia de comandă, Am fugit "c:\windowssystem32lodctr r" ca pe o intrare vorbesc despre InstallShield probleme şi care pare să au rezolvat-o pentru mine.
Am observat că în ultima vreme, fan meu pupitru/serverul se opreşte niciodată. Ştiu că este folosit pentru a dezactiva. Am luat un moment pentru a verifica it afară observat că un proces de VMware a fost difuzate o concordanţă 20% utilizare pe unul dintre CPU pe. Am verificat Jurnalul de evenimente şi am văzut aceste erori în jurnal aplicaţie întâmplă de zeci de ori pe minut:
Windows nu poate încărca extensible counter DLL UGatherer, DWORD prima în secţiunea de date este codul de eroare Windows.
Windows nu poate încărca extensible counter DLL UGTHRSVC, DWORD prima în secţiunea de date este codul de eroare Windows.
Windows nu poate încărca extensible counter DLL MSSCNTRS, DWORD prima în secţiunea de date este codul de eroare Windows.
Dacă I drill în detalii de unul dintre aceste mesaje, I a lua this:
Sursă: Perflib
Tip: Eroare
Categoria: Nici unul
ID eveniment 1023
Am făcut unele de cercetare şi acolo a fost un indiciu ar putea fi o problemă de permisiune în materie de acces la DLL-uri în cauză. Am jucat în jurul cu chestia asta, dar nu ar putea afecta lucrurile în mod pozitiv, aşa că am renunţat la care.
VMware a fost sâcâială-mi despre efectuarea o actualizare de ceva timp, Deci, am notat în jos versiunea am avut instalat (se pare că "1.0.1 construi 29996") şi a făcut update. Acest lucru mi-a actualizat la v1.04. Din păcate, aceasta nu rezolva problema.
Se poate opri nebun numărul de mesaje va meu jurnal aplicaţie dacă am închide un serviciu numit "Serviciu de autorizare VMware". Acest lucru mă împiedică să utilizaţi software-ul VMware, astfel încât … nu o astfel de mare opţiune.
Sistemul de operare gazdă este Windows XP 64 pic.
Nu cred că acest lucru sa întâmplat întotdeauna, dar nu-mi amintesc orice eveniment special care să fi condus la acesta.
Acesta este de ce-mi place computere.
</scop>
ACTUALIZARE: Acest lucru funcţionează, dar există limitări semnificative care sunt descrise în Comentarii. Acest lucru poate fi încă utilă în unele circumstanțele.
ACTUALIZARE 2: În proiectul meu curent, utilizatorii întotdeauna Încărcați documente. Ca rezultat al, Eu nu a alerga într-o problemă în cazul în care MS Word se execută şi crede că fişierul a fost redenumit pe ea. I a alerga într-o problemă, "fişierul a fost modificat de altcineva" şi acest lucru rezolvat prin intermediul unui pavilion de tip semafor simplu. Utilizatorii au nevoie pentru a schimba un câmp de date meta la valoarea sa implicită la altceva. Itemupdated() receptor caută o valoare validă de acolo înainte de a efectua de fapt Redenumire şi de atunci, Nu am avut probleme. Poate varia de kilometraj dumneavoastră.
Eu am o cerinţă de client de a schimba numele de fişiere încărcat la o bibliotecă de documente specifice pentru a se conforma cu o convenţie de denumire special. API nu furnizează o Redenumire"()" metoda. În schimb, vom folosi "MoveTo(…)". Aici este un pic minimă de cod pentru a realiza acest lucru:
publice suprascrie nule ItemAdded(SPItemEventProperties proprietăţi) { SPFile f = proprietăţi.ListItem.File; f.MoveTo(proprietăţi.ListItem.ParentList.RootFolder.Url + "/xyzzy.doc"); f.Update(); } |
Bit înşelător numai este "proprietăţile. ListItem.ParentList.RootFolder.Url". MoveTo() metoda necesită un URL. Care piure şir de puncte de mine la folderul rădăcină al meu curent bibliotecă de documente. Acest lucru permite-mi pentru a evita orice greu de codificare în receptor mea de eveniment.
Aceasta este o versiune mult mai util, care face acelaşi lucru, dar atribuie numele de fişier "Titlul":
publice suprascrie nule ItemAdded(SPItemEventProperties proprietăţi) { DisableEventFiring(); // Atribui titlul de acest element pentru numele fişierului în sine. // NOTĂ: Această misiune trebuie să aibă loc înainte de a ne modifica fişierul în sine. // Actualizare de asteptare() pe SPFile pare să invalideze proprietăţi în // unele sens. Actualizărilor titlu"" nu a reuşit până la această schimbare (şi actualizare() apel) // au fost mutate în faţa schimbarea numele de fişier. proprietăţi.ListItem["Titlul"] = proprietăţi.ListItem.File.Name; proprietăţi.ListItem.Update(); SPFile f = proprietăţi.ListItem.File; // Obţine extensia fişierului. Am nevoie de asta mai târziu. şir spfileExt = noi AuthConfig(f.Name).Prelungire; // Redenumiţi fişierul ID element de listă şi de a folosi extensia de fişier pentru a menţine // că o parte din acesta intacte. f.MoveTo(proprietăţi.ListItem.ParentList.RootFolder.Url + "/" + proprietăţi.ListItem["ID"] + spfileExt); // Se muta. f.Update(); EnableEventFiring(); } |
Un coleg, "Marcaj", a început o discuţie de grup de știri potenţial interesantă concentrându-se pe "stabilirea excelent SharePoint guvernare de la începutul" pentru o 35,000 utilizatorul mediu.
Discuţia este aici: http://groups.google.com/group/microsoft.public.sharepoint.portalserver/browse_thread/thread/6d9a738d981af772/1c390b15c5407db6?#1c390b15c5407db6
Pop pe peste şi de a contribui!
</scop>
Eu sunt încă în obiceiul de crafting mea fişiere XML caracteristica de mână, deoarece este toate destul de nou pentru mine. Nu vreau să se bazeze pe un instrument de front-end că face lucruri nu înţeleg (El a spus ca el a scris o intrare de blog, folosind un instrument el nu înţelege).
Astăzi, Am fost încercarea de a adăuga o acțiune particularizată la setările de site-ul, dar este doar nu ar apărea. Am putea instala caracteristică şi a vedea în caracteristicile de site-ul, dar când am activat (fără erori) ea pur şi simplu nu ar apărea pe meniul drop-down.
În cele din urmă am dat seama că am greşit "SharePoint" în atributul de locaţie de <Acțiune particularizată din> nod. Acesta este fişierul de rău elements.xml:
<?XML versiunea="1.0" codificarea="UTF-8" ?> <Elemente xmlns="http://schemas.Microsoft.com/SharePoint/"> <Acțiune particularizată din ID-ul="SiteActionsToolbar" GroupId="SiteActions" Locaţie="Microsoft.Sharepoint.StandardMenu" Secvenţă="100" Titlul="bună!" Descriere="Acţiune de meniu particularizată adăugate prin intermediul o caracteristică." ImageUrl="_layouts/images/menuprofile.gif"> <UrlAction URL-ul="http://www.xyzzy.com"/> </Acțiune particularizată din> </Elemente> |
bun:
<?XML versiunea="1.0" codificarea="UTF-8" ?> <Elemente xmlns="http://schemas.Microsoft.com/SharePoint/"> <Acțiune particularizată din ID-ul="SiteActionsToolBar" GroupId="SiteActions" Locaţie="Microsoft.SharePoint.StandardMenu" Secvenţă="100" Titlul="bună!" Descriere="Acţiune de meniu particularizată adăugate prin intermediul o caracteristică." > <UrlAction URL-ul="http://www.xyzzy.com"/> </Acțiune particularizată din> </Elemente> |
That one took me a good two hours to figure out 🙂
Am lua consolare în faptul că unele zile în viitor, Voi fi în măsură să spun cu convingere, "înapoi în zi, Am avut la trei mile de mers pe jos de deal în zăpadă (desculţ!) pentru a implementa o caracteristică personalizat MOSS. Ai copii, nu ştii cât de uşor aveţi o! Cobor peluza mea!"
Nu pot să aştept.
</scop>