Jo estava treballant en un tret de la setmana passada que vols afegir alguns auriculars d'esdeveniment a una instància de llista específica. (He blogged una mica sobre aquell receptor llista aquí).
Utilitzant la línia d'ordres, Podria instal·lar el tret amb cap error (però vegeu més avall per l'error ocult). Quan vaig intentar desplegar el tret en el lloc, MOLSA queixat d'una «FileNotFoundException" error. Aquesta entrada del blog es descriu com el resolia.
Aquest és l'error que MOSS em va mostrar en el navegador web:
Tret d ' b2cb42e3-4f0a-4380-aaba-1ef9cd526f20’ no es podria instal·lar perquè la càrrega de l'assemblat receptor d'esdeveniment "xyzzyFeatureReceiver_0" ha fallat: System.IO.FileNotFoundException: No es pot carregar arxiu o Assemblea ' xyzzyFeatureReceiver_0’ o una de les seves dependències. El sistema no pot trobar el fitxer especificat. Nom d'arxiu: ' xyzzyFeatureReceiver_0’ a System.Reflection.Assembly.nLoad(Nom del fitxer AssemblyName, Corda codegraden, Proves assemblySecurity, Muntatge locationHint, StackCrawlMark& stackMark, ThrowOnFileNotFound booleana, ForIntrospection booleana) a System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Proves assemblySecurity, StackCrawlMark& stackMark, ForIntrospection booleana) a System.Reflection.Assembly.InternalLoad(Corda assemblyString, Proves assemblySecurity, StackCrawlMark& stackMark, ForIntrospection booleana) a System.Reflection.Assembly.Load(Corda assemblyString) a Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject() WRN: Registre de muntatge vinculant és convertida OFF. Permetre registre de fracàs Assemblea s'uneixen, establir el valor de registres [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) per 1. Nota: Hi ha algun penal d'actuació associades a registre de fracàs Assemblea s'uneixen. Per desactivar aquesta funció, treure el valor de registres [HKLMSoftwareMicrosoftFusion!EnableLog].
Detectar problemes amb Windows SharePoint Services.
|
Sé com provocar deliberadament aquell error: no instal·li l'Assemblea al GAC. Però, era la GAC. Jo normalment instal·la els assemblats a la GAC arrossegant-los a la c:\windowsassembly carpeta utilitzant Explorador de windows. Mai m'he sentit 100% còmode fent això perquè sempre he pensat que el gacutil existia per una raó … així provava que. Feia cap diferència.
Buscava la Internets i trobava aquest lloc: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1
El cartell va passar a estar utilitzant el mateix bit arrel del codi (del llibre WSS dins d'aquesta llista) Així que era un signe d'esperança. No obstant això, el suggeriment de la decoració de l'Assemblea amb una [l'Assemblea: ] Directiva no tenia sentit per a mi. De tota manera ho tastava i estava bé. Feia cap diferència.
Llavors em vaig adonar que la meva definició de classe no era pública. Ho vaig fer públic i que va fer cap diferència.
Següent, Vaig anar a la molèstia d'habilitar el "muntatge s'uneixen fracàs registre" (seguint les instruccions precises i útils, sempre) i aquí és on les coses van començar a obtenir interessants. Aquest registre em mostra que el temps d'execució és buscar a tot arreu en aquest servidor meu Assemblea. Fins i tot apareix a buscar-lo a la meva farmaciola. Però … això no cercar-lo en la GAC.
Vaig posar en la meva jaqueta d'hivern i anar a buscar la Internet una altra vegada i trobar que algú ha tingut aquest problema massa. La llarga discussió en aquest anunci peters fora en res i no puc trobar una solució.
Moc la meva Assemblea en un dels llocs que el registre afirma que està buscant i vaig avançar una mica més. Jo estic recompensat amb un nou error al navegador quan I intenten activar la funció de:
No ha pogut crear l'objecte receptor de tret de "xyzzyFeatureReceiver_0" de l'Assemblea, tipus "Conchango.xyzzyFeatureReceiver" per b2cb42e3-4f0a-4380-aaba-1ef9cd526f20 tret: System.ArgumentNullException: Valor no poden ser nul·les. Nom del paràmetre: tipus a System.Activator.CreateInstance(Tipus tipus, Booleans no públics) a System.Activator.CreateInstance(Tipus tipus) a Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
Detectar problemes amb Windows SharePoint Services.
|
Temps per a un últim viatge de l'Internets!
Aquesta vegada vaig esbrinar, previsiblement prou, Aquesta molsa emet aquest error perquè l'Assemblea no és al GAC.
Vull aconseguir alguna cosa positiva d'aquesta i intentar sentir una mica orgullós que he creat la Fugitiu d'assemblees MSIL, però no està funcionant. Simplement suplements. Em trobo murmurant "o la gallina" sota el meu alè.
Finalment decideix punt. Crear un projecte totalment nou i copiar i enganxar el codi del projecte incredible-cloaked-from-the-GAC-assembly inhàbils per a aquest nou projecte. (Vaig buscar una bandera de complexió anomenar quelcom així com "Amagatall d'Assemblea vinculant si s'instal·la al GAC" però no puc trobar una).
Puc instal lar el tret i activar-lo i … funciona! Així, després de tot allò, Havia bàsicament d ' arrencar’ meu projecte. Això és una altra raó per què odio ordinadors.
Vaig aprendre alguna cosa útil d'aquest. Havia estat instal·lant trets utilitzant la línia d'ordres de stsadm tot el dia i l'estat utilitzant els "-força" opció per hàbit. Per alguna raó, Jo no ús-opció força quan I instal·lava el nou projecte. Aquesta vegada, Feia realment, realment us oblideu copiar Assemblea d'aquest nou projecte a la GAC. Com a resultat, He rebut aquest «FielNotFoundException" error. Aquesta vegada, Em portava de stsadm, no quan intentava activar la funció mitjançant el navegador web. Així, -força de fet juga dos papers. Li permet tornar a instal lar un element existent. També permet instal·lar un tret de vagonetes que no pot treballar a temps d'execució per a la supressió de l'error. Probablement diu tant en l'ajuda d'algun lloc, però mai es va adonar.
</final>