Si l'eina està fent coses no entenc i llavors falla a n pas d'un nombre indeterminat de passos, estàs mort en l'aigua…
</final>
Si l'eina està fent coses no entenc i llavors falla a n pas d'un nombre indeterminat de passos, estàs mort en l'aigua…
</final>
Una vegada més va ser elaboració arxius BDC ADF a mà (Així que poden acumular meu "baixar el meu jardí!" Cred) i colpeixi aquest error encantadora:
"Importació de definició d'aplicació fracassada. S'ha produït el següent error:"
Com es pot veure, hi ha un error, però … no va a dir-me quin és.
En el meu cas, la qüestió va resultar que tenia començava amb una ADF funcional per a un projecte diferent que connectat a una base de dades i executar una consulta SQL contra una visió. En aquest nou projecte, Vaig a trucar a un mètode a un servei web. Havia despullat de la matèria específica de DB i afegir la meva matèria de servei web, però no ha pogut actualitzar la <LobSystem>de l'atribut de tipus. Em vaig canviar a "WebService" i feliçment continuava a errors d'importació més nous i més emocionant, que van ser manejat properament.
Heus aquí el LobSystem malament:
<LobSystem
xmlns:XSi =http://www.w3.org/2001/XMLSchema
XSi:schemaLocation =http://Schemas.Microsoft.com/Office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Tipus = "base de dades"
Versió = "1.0.0.0" Nom = "xyzzy"
xmlns ="http://Schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">
Això és correcte:
<LobSystem
xmlns:XSi =http://www.w3.org/2001/XMLSchema
XSi:schemaLocation =http://Schemas.Microsoft.com/Office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Tipus = "WebService"
Versió = "1.0.0.0" Nom = "xyzzy"
xmlns ="http://Schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">
</final>
ACTUALITZACIÓ: Aquest anunci de MSDN té algunes interessants observacions des JXJ basat en el seu, principalment negatives, experiències anant per aquest camí: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2623565&SiteID=1
Disposem d'un escenari de negoci on cal enllaçar dues biblioteques de documents mitjançant un comú "ID de document" camp.
Sovint utilitzem una columna de cerca que implementa enllaços com aquest. Hi ha diversos inconvenients a les columnes de cerca, tres de les quals es:
Recolzat per BDC, podem utilitzar unes dades de negoci"" tipus de columna i proporciona una recerca superior i fins i tot permet múltiples columnes de dades que apareixen a les visualitzacions de llista.
He tingut algun èxit preliminar amb aquest enfocament i pla a escriure més sobre això.
Si he treballat aquest angle abans i teniu algun comentari, Si us plau comparteixi!
</final>
He estat treballant amb BDC avui, Codificant arxius ADF a mà i generant-me alguns errors. Un tal error:
Fallat la Importaci definició aplicació. S'ha produït el següent error: No ha pogut carregar el tipus descrit pel TypeName del TypeDescriptor. Nom del paràmetre: typeName Error s'ha trobat a o just abans de línia: ' 35’ i la posició: '20'.
MOSS apareix aquest error quan intentava importar el fitxer ADF XML.
He investigat la Internets i va trobar que jo estava referenciant el nom d'instància LOB (des de la <LobSystemInstance>) en el meu <TypeDescriptor> node quan ha he referenciat el propi nom LOB (des de <LobSystem>).
Malament:
<El TypeDescriptor TypeName="Conchango.KeyValue, Nom d'instància LOB" Nom = "KeyValue">
Corregir:
<El TypeDescriptor TypeName="Conchango.KeyValue, Nom LOB" Nom = "KeyValue">
Espero que aquest algú estalvia una hora o dues de temps.
</final>
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].
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()
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>
===
Acudit de bonificació dona:
Dos co-treballadors anar a dinar. Un d'ells diu que l'altre, "Vaig deixar perdre una relliscada freudiana vergonyós l'altra nit."
"Una relliscada freudians? Què és això?"
"Bé, Quan vam acabar de menjar, la cambrera es va acostar i li va preguntar com ens ha agradat els nostres menjars. Volia dir, "Em va encantar el pit de pollastre’ però en canvi em va dir "Estimava els seus pits". Jo estava tan avergonyit."
"Ah," seu company de treball va respondre. "Tenia la mateixa cosa passar-me aquest cap setmana amb la meva dona. Estàvem menjant esmorzar que volia demanar-li a passar la mantega, però en canvi em va cridar al seu, "La meva vida en ruïnes!’"
</final>
ACTUALITZACIÓ (04/08/08): Em sembla que ha de resoldre aquest problema. Línia d'ordres, Corria "c:\windowssystem32lodctr /R" segons una entrada parlant d'InstallShield problemes i que sembla que hagi resolt per a mi.
He notat que últimament, el meu ventilador de taula de treball/servidor mai s'apaga. Sé que solia girar-se. Vaig prendre un moment per revisar-lo adonar que la un procés VMware estava corrent un coherent 20% utilització en un de la CPU. Comprovava el registre de successos i veure aquests errors en el registre de l'aplicació passant desenes de vegades per minut:
Windows no pot carregar extensible comptador DLL UGatherer, la primera DWORD de la secció de dades és el codi d'error de Windows.
Windows no pot carregar extensible comptador DLL UGTHRSVC, la primera DWORD de la secció de dades és el codi d'error de Windows.
Windows no pot carregar extensible comptador DLL MSSCNTRS, la primera DWORD de la secció de dades és el codi d'error de Windows.
Si jo perforar els detalls d'un dels missatges, Vaig aconseguir que això:
Font: Perflib
Tipus: Error
Categoria: Cap
ID de succés 1023
Vaig fer algunes investigacions i hi va haver algun indici que podria ser un problema de permís en termes d'accés a la dll en qüestió. Va jugar amb aquestes coses, però no podria afectar les coses de manera positiva, així em rendia en allò.
VMware havia estat em molesta sobre realitzant una actualització durant força temps, Així vaig anotar la versió havia instal·lat (aparentment "1.0.1 construir 29996") i feia l'actualització. Això em millorat a v 1.04. Tristament, no fixava l'assumpte.
Puc deixar el boig nombre de missatges que va al meu registre aplicació si vaig tancar un servei anomenat "Servei d'autorització de VMware". Això m'impedeix utilitzar el programari de VMware, Així … no una opció tan gran.
El sistema operatiu d'amfitrió és Windows XP 64 mica.
No crec que això ha passat sempre, però no recordo cap esdeveniment en particular que podria haver provocat a la mateixa.
És per això que odio ordinadors.
</final>
ACTUALITZACIÓ: Això treballa però existeixen importants limitacions que es descriuen en els comentaris. Això encara pot ser útil en alguns cirumstances.
ACTUALITZACIÓ 2: En el meu projecte actual, els usuaris sempre carregar documents. Com a resultat, No corro a un problema on MS Word està funcionant i pensa que l'arxiu fou rebatejada en això. Corria a un problema, "l'arxiu va ser modificat per una altra persona" i això resolia mitjançant una bandera de tipus simple semàfor. Els usuaris necessiten canviar un camp de dades meta del seu valor per defecte a una altra cosa. La itemupdated() receptor busca un valor vàlid allà abans d'efectuar en realitat el canvi de nom i des d'aleshores, No he tingut cap problema. El seu quilometratge pot variar.
Tinc un requeriment del client a canviar el nom dels arxius pujats a una biblioteca de documents específics per ajustar-se amb una convenció de nomenclatura particular. L'API no proporciona un "canvi de nom()" mètode. En canvi, utilitzem "MoveTo(…)". Heus aquí una mica de codi per aconseguir això mínima:
públic invalidació buit ItemAdded(SPItemEventProperties Propietats) { SPFile f = propietats.ListItem.File; f.MoveTo(propietats.ListItem.ParentList.RootFolder.Url + "/xyzzy.doc"); f.Update(); } |
La mica complicat només és les propietats". ListItem.ParentList.RootFolder.Url". La MoveTo() mètode requereix una adreça URL. Que amassat amunt punts corda m a la carpeta arrel de la meva biblioteca de document actual. Això permet em d'evitar qualsevol codificació dura al meu auricular d'esdeveniment.
Aquesta és una versió més útil que fa el mateix, però assigna el nom del fitxer "Títol":
públic invalidació buit ItemAdded(SPItemEventProperties Propietats) { DisableEventFiring(); // Assignar el títol d'aquest element al nom d'arxiu propi. // NOTA: Aquesta tasca ha de tenir lloc abans que podem modificar l'arxiu mateix. // Anomenant actualització() en l'SPFile sembla invalidar les propietats de // una mica de sentit. Actualitzacions al títol"" fracassat fins que canvieu (i actualització de() convocatòria) // s'han desplaçat davant el canvi de nom del fitxer. propietats.Element de llista[Títol""] = propietats.ListItem.File.Name; propietats.ListItem.Update(); SPFile f = propietats.ListItem.File; // Aconseguir l'extensió del fitxer. Necessitem que més tard. corda spfileExt = nou FileInfo(f.Name).Extensió; // Rebategi l'arxiu a ID de l'element llista i utilitzeu l'extensió per mantenir // aquesta part del que intacta. f.MoveTo(propietats.ListItem.ParentList.RootFolder.Url + "/" + propietats.Element de llista["ID"] + spfileExt); // Cometre el moviment. f.Update(); EnableEventFiring(); } |
Becari, "Marca", ha posat en marxa una discussió potencialment interessant discussió centrant-se en "establint governança SharePoint excel·lent des del principi" per a un 35,000 ambient d'usuari.
La discussió és aquí: http://groups.google.com/group/microsoft.public.sharepoint.portalserver/browse_thread/thread/6d9a738d981af772/1c390b15c5407db6?#1c390b15c5407db6
Pop a sobre i contribuir!
</final>
Estic encara en l'hàbit d'elaboració els meus arxius XML tret a mà ja que és bastant nou per a mi. No vull confiar en una eina frontal que fa coses que no entenc (deia com ell va escriure una entrada de bloc utilitzant una eina que no entén).
Avui, Jo estava tractant d'afegir una acció personalitzada a la configuració del lloc, però això només no demostració cap amunt. Podia instal·lar el tret i veure en els trets de lloc, però quan vaig activar-lo (sense error) Això simplement no apareixen en el menú desplegable.
Finalment em vaig adonar que jo mallletrejat "del SharePoint" a l'atribut d'ubicació de la <CustomAction> Node. Aquest és el fitxer de mal elements.xml:
<?XML versió="1.0" codificació="UTF-8" ?> <Elements xmlns="http://schemas.Microsoft.com/SharePoint/"> <CustomAction Identificador="SiteActionsToolbar" GroupId="SiteActions" Localització="Microsoft.Sharepoint.StandardMenu" Seqüència="100" Títol="Hola!" Descripció="Acció de menú de costum afegir via un tret." ImageUrl="_layouts/images/menuprofile.gif"> <UrlAction URL="http://www.xyzzy.com"/> </CustomAction> </Elements> |
Bona:
<?XML versió="1.0" codificació="UTF-8" ?> <Elements xmlns="http://schemas.Microsoft.com/SharePoint/"> <CustomAction Identificador="SiteActionsToolBar" GroupId="SiteActions" Localització="Microsoft.SharePoint.StandardMenu" Seqüència="100" Títol="Hola!" Descripció="Acció de menú de costum afegir via un tret." > <UrlAction URL="http://www.xyzzy.com"/> </CustomAction> </Elements> |
That one took me a good two hours to figure out 🙂
Prenc consol en el fet que algun dia en el futur, Seré capaç de dir amb convicció, «tornada en el dia, Que havia de caminar tres quilòmetres turó a la neu (descalç!) per tal d'implementar un tret personalitzat a la molsa. Que els nens, no saps com fàcil ho tenen! Baixar el meu jardí!"
No puc esperar.
</final>