Als het hulpprogramma is het doen van dingen die u niet begrijpt en mislukt het in stap n van een onbekend aantal stappen, je bent dood in het water…
</einde>
Als het hulpprogramma is het doen van dingen die u niet begrijpt en mislukt het in stap n van een onbekend aantal stappen, je bent dood in het water…
</einde>
Ik was eens te meer crafting BDC ADF bestanden met de hand (zodat ik kan opbouwen mijn "stapt uit mijn gazon!" Cred) en deze mooie fout hit:
"Toepassing definitie importeren is mislukt. De volgende fout is opgetreden:"
Zoals u kunt zien, Er is een fout, maar … het gaat niet om me te vertellen wat het is.
In mijn geval, het probleem bleek dat ik had begon met een functionele ADF voor een ander project dat verbonden met een database en uitgevoerd op een SQL-query tegen een weergave. In dit nieuwe project, Ik ben het aanroepen van een methode op een webservice. Ik had uit de DB specifieke dingen ontdaan en voegde mijn web service spullen, maar het bijwerken mislukt de <LobSystem>het kenmerk type. Ik schakelde het op "WebService" en ik gelukkig verhuisd naar nieuwere en meer spannende Importfouten, die werden behandeld zijner.
Hier is de verkeerde LobSystem:
<LobSystem
xmlns:XSi =http://www.w3.org/2001/XMLSchema-instance
XSi:schemaLocation =http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Type = "Database"
Versie = "1.0.0.0" Naam = "xyzzy"
xmlns ="http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">
Dit klopt:
<LobSystem
xmlns:XSi =http://www.w3.org/2001/XMLSchema-instance
XSi:schemaLocation =http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Type = "WebService"
Versie = "1.0.0.0" Naam = "xyzzy"
xmlns ="http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">
</einde>
UPDATE: Dit MSDN-posten heeft sommige interessante observaties van JXJ op basis van zijn, vooral negatieve, going down dit pad ervaringen: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2623565&SiteID=1
We hebben een bedrijfsscenario waar we moeten twee documenten bibliotheken via een gemeenschappelijk "document-ID koppelen" veld.
We gebruiken vaak een opzoekkolom implementeert koppelingen als dit. Er zijn enkele nadelen aan opzoekkolommen, drie van die:
Gesteund door BDC, We kunnen een "zakelijke gegevens gebruiken" kolomtype en het biedt een superieure zoeken en laat zelfs meerdere kolommen met gegevens worden weergegeven in de lijstweergaven.
Ik heb sommige voorlopige succes met deze aanpak en van plan om meer over het te schrijven.
Als u deze hoek voor gewerkt heb en geen reacties hebben, Gelieve te delen!
</einde>
Ik heb gewerkt met BDC vandaag, ADF bestanden met de hand codering en het genereren van mezelf enkele fouten. Een dergelijke fout:
Toepassing definitie importeren is mislukt. De volgende fout is opgetreden: Type beschreven door TypeDescriptor de TypeName kan niet laden. Parameternaam: typeName fout opgetreden op of vlak voor lijn: ' 35’ en positie: '20'.
MOSS weergegeven deze fout toen ik probeerde om de ADF XML-bestand importeren.
Ik onderzocht de Internets en vond dat ik was referencement de instantienaam LOB (van de <LobSystemInstance>) in mijn <TypeDescriptor> knooppunt wanneer ik moet hebben verwezen de naam LOB zelf (Van <LobSystem>).
Verkeerde:
<TypeDescriptor TypeName="Conchango.KeyValue, LOB instantienaam" Naam = "KeyValue">
Corrigeren:
<TypeDescriptor TypeName="Conchango.KeyValue, LOB naam" Naam = "KeyValue">
Hoop dat dit een iemand een uur of twee van tijd bespaart.
</einde>
Ik was bezig met een functie vorige week dat sommige ontvangers gebeurtenis aan een specifieke lijst exemplaar toevoegen zou. (Ik geblogd een beetje over die lijst ontvanger hier).
Via de opdrachtregel, Mij konden installeren de functie met geen fout (maar zie hieronder voor de verborgen fout). Toen ik probeerde om het implementeren van de functie op de site, MOSS klaagde over een "FileNotFoundException" fout. Deze blog entry beschrijft hoe ik heb het opgelost.
Dit is de fout die MOSS me in de webbrowser liet:
Functie ' b2cb42e3-4f0a-4380-sequence-1ef9cd526f20’ kan niet worden geïnstalleerd omdat het laden van gebeurtenis ontvanger montage "xyzzyFeatureReceiver_0" is mislukt: System.io.FileNotFoundException: Kan niet laden bestand of vergadering ' xyzzyFeatureReceiver_0’ of één van zijn gebiedsdelen. Het systeem kan het opgegeven bestand niet vinden.
Bestandsnaam: ' xyzzyFeatureReceiver_0’
op System.Reflection.Assembly.nLoad(AssemblyName bestandsnaam, Tekenreeks codeBase, Bewijs assemblySecurity, Vergadering locationHint, StackCrawlMark& stackMark, Booleaanse throwOnFileNotFound, Booleaanse forIntrospection)
op System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Bewijs assemblySecurity, StackCrawlMark& stackMark, Booleaanse forIntrospection)
op System.Reflection.Assembly.InternalLoad(String assemblyString, Bewijs assemblySecurity, StackCrawlMark& stackMark, Booleaanse forIntrospection)
op System.Reflection.Assembly.Load(String assemblyString)
op Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
WRN: Vergadering bindende logboekregistratie is ingeschakeld OFF.
Vergadering bind mislukking logboekregistratie inschakelen, instellen van de registerwaarde [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) Aan 1.
Opmerking: Er is enige prestatiessanctie die zijn gekoppeld aan de assemblage bind mislukking logboekregistratie.
Deze functie uitschakelen, de registerwaarde verwijderen [HKLMSoftwareMicrosoftFusion!EnableLog].
Ik weet hoe te het opzettelijk veroorzaken die fout: de vergadering niet installeren in de GAC. Maar, het was in de GAC. Ik installatie normaal van assembly's in de GAC door ze te slepen in de c:\windowsassembly map met behulp van windows verkenner. Ik heb nooit gevoeld 100% comfortabel dat te doen want ik heb altijd gedacht dat gacutil bestond voor een reden … dus ik dat probeerde. Het maakte geen verschil.
Ik zocht de Internets en vond dit bericht: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1
De poster is er gebeurd met de dezelfde wortel bits van code gebruiken (uit het boek binnen WSS uit deze lijst) dus dat een hoopvol teken was. Echter, de suggestie van het verfraaien van de vergadering met een [vergadering: ] richtlijn zinvol niet voor mij. Ik probeerde het toch en ik had gelijk. Het maakte geen verschil.
Dan merkte ik dat mijn klassendefinitie niet openbaar was. Ik maakte het publiek en dat maakte geen verschil.
Volgende, Ik ging naar het probleem van de "vergadering bind mislukking log inschakelen" (naar aanleiding van de nuttige en nauwkeurige instructies geboden) en dit is waar de dingen begonnen om interessante. Dit logboek toont me dat de runtime overal op die server voor mijn vergadering zoeken is. Het lijkt zelfs zoeken naar het in mijn medicijnkastje. Maar … het zal niet zoeken naar het in de GAC.
Ik zette mijn winter jas en de Internets opnieuw gaan zoeken en vinden dat iemand dit probleem te heeft. De lange discussie in dat bericht peters uit in het niets en ik kan niet het vinden van een oplossing.
Ik verplaatst mijn vergadering naar een van de plaatsen die het logboek beweert het op zoek en ik een beetje meer vooruitgang. Ik ben beloond met een nieuwe fout in de browser wanneer ik probeer om de functie te activeren:
Functie ontvanger object het maken van vergadering "xyzzyFeatureReceiver_0" is mislukt, type "Conchango.xyzzyFeatureReceiver" voor de functie b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: Waarde kan niet null.
Parameternaam: type
op System.Activator.CreateInstance(Type type, Boolean nonPublic)
op System.Activator.CreateInstance(Type type)
op Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
Tijd voor een laatste reis naar de Internets!
Deze keer ik erachter, voorspelbaar genoeg, dat MOSS deze fout problemen omdat de assemblage zich niet in de GAC.
Ik wil te krijgen iets positief uit dit en probeer te voelen een beetje trots op dat ik heb gemaakt de Vluchteling van assemblages MSIL, maar het werkt niet. Ik ben gewoon geïrriteerd. Ik vind mezelf mompelen "kip of het ei" onder mijn adem.
Tot slot besluit ik om punt. Ik maak een geheel nieuw project en kopieer/plak de code van de incredible-cloaked-from-the-GAC-assembly niet-werkende project over aan dit nieuwe project. (Ik zoek een build vlag met de naam iets als "verbergen van vergadering bindend als geïnstalleerd in de GAC" maar kan niet vinden).
Ik installeer de functie en het activeren en … het werkt! Dus, na al dat, Ik moest eigenlijk ' opnieuw opstarten’ mijn project. Dit is een andere reden waarom ik computers haat.
Ik leerde iets nuttigs hieruit. Ik had het installeren van functies met behulp van de opdrachtregel stsadm hele dag lang en met behulp van de "-kracht" optie uit gewoonte. Voor sommige reden, Ik heb geen gebruik de - force optie toen ik het nieuwe project installeerde. Deze keer, Ik deed eigenlijk, echt vergeten vergadering van dit nieuwe project kopiëren naar de GAC. Als een resultaat, Ik kreeg die "-FielNotFoundException" fout. Deze keer, Ik heb het uit stsadm, niet toen ik probeerde om de functie via de webbrowser te activeren. Dus, -kracht speelt eigenlijk twee rollen. Hiermee kunt u een bestaande functie opnieuw te installeren. Ook kunt u een buggy voorziening die door het onderdrukken van de fout werkt niet tijdens runtime te installeren. Het zegt waarschijnlijk zo veel in de help van ergens, maar ik merkte nooit het.
</einde>
===
Bonus vrouw grap:
Twee mannelijke collega's gaan uit naar de lunch. Een van hen vertelt de andere, "Ik laat los een pijnlijk Freudiaanse verspreking de andere nacht."
"Een Freudiaanse verspreking? Wat is dat?"
"Nou, Toen we klaar met eten, de serveerster kwam door en vroeg hoe wij graag onze maaltijden. Ik betekende zeggen, ' Ik hield de kipfilet’ maar in plaats daarvan gezegd 'Ik hield van uw borsten'. Ik was zo beschaamd."
"Ah," zijn mede-werker antwoordde:. "Ik had het zelfde ding gebeurt aan me dit weekend met mijn vrouw. Wij zaten te eten ontbijt die ik bedoeld om te vragen haar om door te geven van de boter, maar in plaats daarvan ik schreeuwde tegen haar, ' Je verpest mijn leven!’"
</einde>
UPDATE (04/08/08): Ik schijn te hebben dit probleem opgelost. Vanaf de opdrachtregel, Ik liep "c:\windowssystem32lodctr/r" als per een post over InstallShield lijkt problemen en die te hebben het opgelost voor mij.
Ik heb gemerkt dat de laatste tijd, mijn bureaublad/server fan wordt nooit uitgeschakeld. Ik weet dat het gebruikt om uit te schakelen. Ik nam een moment om te controleren het uit gemerkt dat het een VMware proces liep een consistente 20% gebruik op een van de CPU's. Ik controleerde het gebeurtenislogboek en zag deze fouten in het toepassingslogboek gebeurt tientallen keren per minuut:
Windows laden niet extensible teller DLL UGatherer, de eerste DWORD-waarde in de gegevenssectie is de foutcode van Windows.
Windows laden niet extensible teller DLL UGTHRSVC, de eerste DWORD-waarde in de gegevenssectie is de foutcode van Windows.
Windows laden niet extensible teller DLL MSSCNTRS, de eerste DWORD-waarde in de gegevenssectie is de foutcode van Windows.
Als ik in de details van een van deze berichten boren, Krijg ik dit:
Bron: Perflib
Type: Fout
Categorie: Geen
Gebeurtenis-ID 1023
Ik deed wat onderzoek en er was een indicatie zou een toestemming probleem wat betreft de toegang naar de DLL's in kwestie. Ik speelde rond met dat spul maar kan geen invloed op dingen op een positieve manier dus ik gaf op die.
VMware had geweest treiteraar mij over het uitvoeren van een update voor geruime tijd, dus ik noteerde de versie die ik had geïnstalleerd (blijkbaar bouwen"1.0.1 29996") en deed de update. Dit me een upgrade naar v1.04. Helaas, het did niet positiebepaling naar de kwestie.
Ik kan stoppen met het krankzinnig aantal berichten naar mijn toepassingslogboek te gaan als ik een dienst genaamd "VMware Authorization Service" afsluiten. Hiermee voorkomt u dat mij met behulp van de VMware-software, dus … niet deze een grote optie.
De gastheer-besturingssysteem is Windows XP 64 bits.
Ik denk niet dat dit altijd is gebeurd, maar ik weet niet een bepaalde gebeurtenis die zou hebben geleid tot het.
Dit is waarom ik computers haat.
</einde>
UPDATE: Dit werkt maar er zijn belangrijke beperkingen die worden beschreven in de commentaren. Dit kan nog steeds nuttig in sommige doen zijn.
UPDATE 2: In mijn huidige project, gebruikers uploaden altijd documenten. Als een resultaat, Ik lopen niet in een probleem waar MS Word wordt uitgevoerd en denkt dat het bestand werd gewijzigd op het. Ik heb lopen in een probleem, "het bestand is bewerkt door iemand anders" en dit opgelost via een eenvoudige semafoor type vlag. Gebruikers moeten een meta data-veld wijzigen van de standaardwaarde naar iets anders. De itemupdated() ontvanger zoekt naar een geldige waarde er voordat u eigenlijk de naam wijzigen en sindsdien, Ik heb niet had ieder problematiek. Jouw snelheid kan variëren.
Ik heb een vereiste van de client de naam van de bestanden naar een bepaalde documentbibliotheek om te voldoen aan een bepaalde naamgevingsconventie wijzigen. De API voorziet niet in een "hernoemen()" methode. In plaats daarvan, We gebruiken "MoveTo(…)". Hier is een minimale beetje van code om dit te bereiken:
openbare overschrijven VOID ItemToegevoegd (ItemAdded)(SPItemEventProperties eigenschappen) { SPFile f = eigenschappen.ListItem.File; f.moveTo(Eigenschappen.ListItem.ParentList.RootFolder.Url + "/xyzzy.doc"); f.update(); } |
De alleen lastig bit is de "Eigenschappen. ListItem.ParentList.RootFolder.Url". De VerplaatsenNaar() methode vereist een URL. Die puree tekenreeks punten mij naar de root-map van mijn huidige documentbibliotheek. Dit kan ik om te voorkomen dat een harde codering in mijn gebeurtenis ontvanger.
Dit is een meer nuttige versie die het zelfde ding doet, maar de naam van het bestand wordt toegewezen aan "Titel":
openbare overschrijven VOID ItemToegevoegd (ItemAdded)(SPItemEventProperties eigenschappen) { DisableEventFiring(); // De titel van dit item toewijzen aan de naam van het bestand zelf. // OPMERKING: Deze toewijzing moet plaatsvinden voordat we het bestand zelf wijzigen. // Update aanroepen() lijkt op de SPFile om de eigenschappen in ongeldig te maken // sommige zin. Updates voor "titel" totdat dat wijzigen is mislukt (en update() oproep) // voor de verandering werden verplaatst naar de bestandsnaam. Eigenschappen.ListItem["Titel"] = Eigenschappen.ListItem.File.Name; Eigenschappen.ListItem.Update(); SPFile f = eigenschappen.ListItem.File; // Krijgen de extensie van het bestand. Wij moeten dat later. tekenreeks spfileExt = Nieuw FileInfo(f.name).Extensie; // Hernoem het bestand naar het item in de lijst-ID en de extensie gebruiken om te houden // dat deel van het intact. f.moveTo(Eigenschappen.ListItem.ParentList.RootFolder.Url + "/" + Eigenschappen.ListItem["ID"] + spfileExt); // Plegen de verhuizing. f.update(); EnableEventFiring(); } |
Een collega, "Mark", een potentieel interessante nieuwsgroep discussie zich te concentreren op "tot vaststelling van uitstekende SharePoint Governance vanaf het begin heeft opgestart" voor een 35,000 gebruikersomgeving.
De discussie is hier: http://groups.google.com/group/microsoft.public.sharepoint.portalserver/browse_thread/thread/6d9a738d981af772/1c390b15c5407db6?#1c390b15c5407db6
Pop op over en bij te dragen!
</einde>
Ik ben nog steeds in de gewoonte van crafting mijn functie XML-bestanden met de hand, want het is allemaal heel nieuw voor mij. Ik wil niet te vertrouwen op een front-end-instrument dat is spul, die ik begrijp niet (zei hij toen hij schreef een blog entry met behulp van een tool die hij niet begrijpt).
Vandaag, Mij watertje trying voor een aangepaste actie toevoegen aan de site-instellingen, maar het gewoon niet zou opdagen. Ik kon installeren van de functie en zie het in de functies van de site, maar toen ik geactiveerd het (zonder fouten) het niet zou gewoon opdagen op het drop-down menu.
Ik eindelijk besefte dat ik het verkeerd gespeld "SharePoint" in het locatiekenmerk van de <CustomAction> knooppunt. Dit is het slechte elements.xml bestand:
<?XML Versie="1.0" codering="UTF-8" ?> <Elementen xmlns="http://schemas.Microsoft.com/SharePoint/"> <CustomAction Id="SiteActionsToolbar" Groeps-id="SiteActions" Locatie="Microsoft.Sharepoint.StandardMenu" Volgorde="100" Titel="Hallo!" Beschrijving="Aangepaste menu actie toegevoegd via een functie." ImageUrl="_layouts/images/menuprofile.gif"> <UrlAction URL="http://www.Xyzzy.com"/> </CustomAction> </Elementen> |
Goede:
<?XML Versie="1.0" codering="UTF-8" ?> <Elementen xmlns="http://schemas.Microsoft.com/SharePoint/"> <CustomAction Id="SiteActionsToolBar" Groeps-id="SiteActions" Locatie="Microsoft.SharePoint.StandardMenu" Volgorde="100" Titel="Hallo!" Beschrijving="Aangepaste menu actie toegevoegd via een functie." > <UrlAction URL="http://www.Xyzzy.com"/> </CustomAction> </Elementen> |
That one took me a good two hours to figure out 🙂
Ik neem troost in het feit dat sommige dag in de toekomst, Mij zal zitten kundig voor zeggen met overtuiging, "back in the day, Ik had om te lopen drie mijlen heuvel in de sneeuw (Barefoot!) om de implementatie van een aangepaste functie aan MOSS. U jonge geitjes, u weet niet hoe gemakkelijk heb je het! Stapt uit mijn gazon!"
Kan niet wachten.
</einde>