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].
Depanarea problemelor cu Windows SharePoint Services.
|
Ş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()
Depanarea problemelor cu Windows SharePoint Services.
|
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>