Månedligt arkiv: Januar 2008

Løsning til BDC-ADF Import fiasko: “Følgende fejl opstod:”

Jeg igen crafting BDC ADF filer i hånden (så at jeg kan opbygge min "stå af min græsplæne!" Cred) og ramte denne dejlige fejl:

billede

"Importen af programdefinitionen mislykkedes. Følgende fejl opstod:"

Som du kan se, der er en fejl, Men … det ikke gonna fortælle mig hvad det er.

I mit tilfælde, Problemet viste sig at jeg havde startede med en funktionel ADF for et andet projekt, der forbundet til en database og kørt en SQL forespørgsel mod en visning. I dette nye projekt, Jeg kalder en metode på en webtjeneste. Jeg havde strippet ud DB specifikke ting og tilføjet min web service ting, men kunne ikke opdatere den <LobSystem>'s type-attribut. Jeg skiftede det til "WebService" og jeg heldigvis flyttet til nyere og mere spændende importfejl, som blev håndteret med tiden.

Her er den forkerte LobSystem:

<LobSystem
xmlns:XSi =http://www.w3.org/2001/XMLSchema-instance
XSi:schemaLocation =http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Type = "Database"
Version = "1.0.0.0" Navn = "xyzzy"
xmlns ="
http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

Dette er korrekt:

<LobSystem
xmlns:XSi =http://www.w3.org/2001/XMLSchema-instance
XSi:schemaLocation =http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalogBDCMetadata.xsd
Type = "WebService"
Version = "1.0.0.0" Navn = "xyzzy"
xmlns ="
http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

</slutningen>

Technorati Tags:

BDC synes en levedygtig erstatning For opslag

OPDATERING: Denne MSDN udstationering har nogle interessante bemærkninger fra JXJ baseret på hans, overvejende negativ, erfaringer går denne vej: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2623565&SiteID=1

Vi har en business scenario hvor vi skal sammenkæde to dokumenter biblioteker via en fælles "dokument-ID" felt.

Vi bruger ofte en opslagskolonne til redskaber links som dette. Der er flere ulemper for opslagskolonner, tre af dem er:

  1. Kun én kolonne fra biblioteket opslag opslag kan være forbundet.
  2. Ydeevne: Kildebiblioteket kunne indeholder hundredvis af poster. Der er for mange poster i opslaget.
  3. Søg: Der er ingen integreret søgning. Jeg mener ikke i ordets MOSS søgning, men der er ingen måde at søge / filtrere efter flere kolonner fra kildedokumentbiblioteket og Find den kæde, du vil.

Bakket op af BDC, Vi kan bruge en "business data" kolonnetype, og det giver en overlegen søgning og giver mulighed for endda flere kolonner med data, der skal vises i listevisninger.

Jeg har haft nogle indledende succes med denne tilgang og planlægger at skrive mere om det.

Hvis du har arbejdet denne vinkel før og har kommentarer, behage lod!

</slutningen>

Technorati Tags:

Løsning til BDC-importfejl: “Der er beskrevet af TypeName for TypeDescriptor, kunne ikke indlæses …”

Jeg har arbejdet med BDC i dag, kodning ADF filer i hånden og generere mig nogle fejl. En sådan fejl:

Importen af programdefinitionen mislykkedes. Følgende fejl opstod: Der er beskrevet af TypeName for TypeDescriptor, kunne ikke indlæses. Parameternavnet: typeName fejl opstod på eller lige før Line: «35’ og holdning: '20'.

MOSS vises denne fejl, når jeg prøvede at importere filen ADF XML.

Jeg researchede Internets og fundet, at jeg var henvisninger forekomstnavn LOB (fra den <LobSystemInstance>) i min <TypeDescriptor> node, når jeg skal have refereres LOB navnet i sig selv (fra <LobSystem>).

Forkert:

<TypeDescriptor TypeName="Conchango.KeyValue, LOB forekomstnavn" Navn = "Nøgleværdi">

Rette:

<TypeDescriptor TypeName="Conchango.KeyValue, LOB navn" Navn = "Nøgleværdi">

Håbe denne ene sparer nogen en time eller to af tid.

</slutningen>

Abonner på min blog!

Technorati Tags:

Løsning på problemet: “FileNotFoundException” Med min funktion modtager.

Jeg arbejdede på en funktion i sidste uge, som vil tilføje nogle hændelsesmodtagere til en bestemt liste forekomst. (Jeg blogges lidt om at listen modtager her).

Ved hjælp af kommandolinjen, Jeg kunne installere funktionen med ingen fejl (Men se nedenfor for de skjulte fejl). Da jeg prøvede at installere funktionen på webstedet, MOSS klagede over en "FileNotFoundException" fejl. Dette blogindlæg beskriver, hvordan jeg løst det.

Indeværende er den fejl, at MOSS viste mig i webbrowseren:

Funktionen ' b2cb42e3-4f0a-4380-Hanss-1ef9cd526f20’ kunne ikke installeres, fordi indlæsning af begivenhed receiver forsamling "xyzzyFeatureReceiver_0" mislykkedes: System.IO.FileNotFoundException: Kunne ikke indlæse filen eller assemblyen ' xyzzyFeatureReceiver_0’ eller en af dens afhængigheder. Systemet kan ikke finde den angivne fil.
Filnavn: ' xyzzyFeatureReceiver_0’
på System.Reflection.Assembly.nLoad(AssemblyName filnavn, Streng codeBase, Beviser assemblySecurity, Assemblyen locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
på System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Beviser assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
på System.Reflection.Assembly.InternalLoad(Strengen assemblyString, Beviser assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
på System.Reflection.Assembly.Load(Strengen assemblyString)
på Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
WRN: Forsamling bindende logføring er slået fra.
Du aktiverer forsamling binder fiasko logføring, indstille registreringsdatabaseværdien [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) til 1.
Bemærk: Der er nogle ydeevne sanktion tilknyttet forsamling binder fiasko logføring.
Slå denne funktion fra, ophæve den indskrive værdi [HKLMSoftwareMicrosoftFusion!EnableLog].

Fejlfinding af problemer med Windows SharePoint Services.

Jeg ved, hvordan man bevidst forårsage denne fejl: ikke installere assemblyen i GAC. Men, Det var i GAC. Jeg installere normalt forsamlinger i GAC ved at trække dem til c:\windowsassembly mappe ved hjælp af windows Stifinder. Jeg har aldrig følt 100% komfortable gør, fordi jeg altid troet, at gacutil eksisteret en grund … så jeg prøvede at. Det gjorde ingen forskel.

Jeg søgte Internets og fandt dette indlæg: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1

Plakaten tilfældigvis skal bruge den samme rod bit kode (fra bogens inde WSS fra denne liste) så det var et lovende tegn. Dog, forslaget om udsmykning forsamling med et [forsamling: ] direktiv giver ikke mening for mig. Jeg prøvede det alligevel og jeg havde ret. Det gjorde ingen forskel.

Så jeg bemærket, at min klassedefinitionen ikke var offentlige. Jeg gjorde det offentlige og det gjorde ingen forskel.

Næste, Jeg gik til besværet med at aktivere "forsamling binder fejl log" (på grundlag af nyttige og præcise instruktioner) og dette er, hvor ting begyndte at blive interessant. Denne log viser mig, at runtime søger overalt på den pågældende server til min samling. Det synes selv at være at søge efter det i mit medicinskabet. Men … det vil ikke søge efter det i GAC.

Jeg sætter på min vinterjakke og gå søger Internets igen og finde, at nogen har haft dette problem også. Den langvarige diskussion i denne udstationering peters off i noget og jeg kan ikke finde en løsning.

Jeg flytter min samling til et af de steder log hævder det søger og jeg komme lidt videre. Jeg er belønnet med en ny fejl i browseren, når jeg forsøger at aktivere funktionen:

Det mislykkedes at oprette funktion modtager objektet fra forsamlingen "xyzzyFeatureReceiver_0", Skriv "Conchango.xyzzyFeatureReceiver" for funktionen b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: Værdi må ikke være null.
Parameternavnet: type
på System.Activator.CreateInstance(Type type, Boolean nonPublic)
på System.Activator.CreateInstance(Type type)
på Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()

Fejlfinding af problemer med Windows SharePoint Services.

Tid til en sidste tur til Internets!

Denne gang jeg finde ud af, forudsigeligt nok, at MOSS spørgsmål denne fejl, fordi assemblyen ikke er i GAC.

Jeg ønsker at få noget positivt ud af det og forsøge at være lidt stolt, at jeg har lavet den Diffus MSIL forsamlinger, men det er ikke i orden. Jeg er bare plain irriteret. Jeg befinder mig mumler "hønen eller ægget" under min ånde.

Jeg endelig beslutter at punt. Jeg oprette et helt nyt projekt og copy/paste koden fra incredible-cloaked-from-the-GAC-assembly ikke-arbejdende projektet over dette nye projekt. (Jeg søger en bygge flag kaldes noget som "Skjul fra assemblyen bindende, hvis installeret i GAC" men kan ikke finde en).

Jeg installere funktionen og aktivere den og … det virker! Så, efter alle, Jeg måtte dybest set ' genstarte’ mit projekt. Dette er en anden grund til hvorfor jeg hader computere.

Jeg har lære noget nyttigt fra dette. Jeg havde installation af funktioner ved hjælp af kommandolinjen stsadm hele dagen lang og brugt den "-kraft" indstilling ud af vane. For anden grund, Jeg ikke bruger - kraft valgmulighed da jeg installerede det nye projekt. Denne gang, Jeg gjorde faktisk, virkelig Glem at kopiere dette nye projekt assembly til GAC. Som et resultat, Jeg fik denne "FielNotFoundException" fejl. Denne gang, Jeg fik det fra stsadm, ikke, når jeg prøvede at aktivere funktionen via en webbrowser. Så, -kraft faktisk spiller to roller. Gør det muligt at re-installere en eksisterende funktion. Det giver også mulighed for at installere en buggy funktion, der ikke kan arbejde på kørselstidspunktet ved at undertrykke fejlen. Det siger nok så meget i hjælp til et eller andet sted, men jeg lagt mærke aldrig til det.

</slutningen>

Søndag Funny: Toppen 10 Måder at irritere din kone

  1. Købe broccoli, når du ved der er allerede mere end nok i køleskabet.
  2. Gå efter en løbetur. Køle af. Tage ren pudebetræk og erstatte med T-shirt. Dække med ren pudebetræk.
  3. Når du kører, Spørg, hvis vi skal gå den forkerte vej ned ad en ensrettet gade.
  4. For 15 år, hver søndag at du hustru foreslår at gå til et museum, udtrykke overraskelse at museer er åben på søndag.
  5. For 15 år, lejlighedsvis foreslå at gå til den lokale boghandel på søndag. Udtrykke overraskelse at de ikke er åben på søndag (Mange tak Blå love!).
  6. Brug 20 punkter til at gøre en 3 punkt tur.
  7. På en cool tidligt efterår eftermiddag, gå ind i stuen og drej på a/c. Klager over, at det er koldt. Når kone siger, "hvorfor du Tænd for at, fjollet" og får at slukke den, Grab varm stedet hun havde på sofaen. Bonuspoint hvis hun ikke indse du gjorde det først langt senere.
  8. Åbne en dåse lækker hvid hvid tun og spiser det lige fra kan, i sengen, Om natten.
  9. Gå ind i køkkenet, mens kone spiser middag, åbne bestik skuffe og skubbe redskaber indtil kone skrig, "hvad du leder efter!"
  10. Ved modtagelse af nye visitkort, hemmeligt placere dem rundt omkring huset: Under sengen, i pudebetræk, inde kaffekopper, i hendes pung, i pelsen lommer, bil handske rum, spisekammer — hvor som helst kan du tænke på.
  11. Skrive blogindlæg om din kone.
  12. Vågn op.
  13. Når du går på gaderne i New York City, være på vagt for "sprøde" objekter på jorden. Holde for øje, din kones særlige frygt, nå som om at samle en op op og spørge, "hmm, Jeg spekulerer på, hvad det er?" (Vær forberedt for kone til kroppen smække dig som om hun er en secret service agent beskytte præsident fra en snigskytte eller du vil finde dig selv om på ryggen på fortovet).
  14. Kører to gange rundt en parkeringsplads, søger plads. Du ved, du har virkelig ramt pay dirt, når din søn i bagsædet råber, "Åh ingen! Han gør det igen!"
  15. Skrive "top 10" lister, der ikke har 10 elementer.

===

Bonus kone joke:

To mandlige kollegaer gå til frokost. En af dem fortæller den anden, "Jeg slippe løs en pinlig freudiansk slip anden aftenen."

"En freudiansk slip? Hvad er det?"

"Godt, Når vi færdig med at spise, Servitricen kom forbi og spurgte hvor vi kunne lide vores måltider. Jeg mente sige, «Jeg elskede kyllingebryst’ men i stedet jeg sagde 'Jeg elskede dine bryster'. Jeg var så flov."

"Ah," hans medarbejder svarede. "Jeg havde det samme ske for mig denne weekend med min kone. Vi spiste morgenmad, jeg mente at bede hende om at passere smørret, men i stedet jeg skreg på hende, ' Du ødelagde mit liv!’"

</slutningen>

Technorati Tags:

Hændelses-ID 1023: “Windows kan ikke indlæse tæller-DLL MSSCNTRS”

OPDATERING (04/08/08): Jeg synes at have løst dette problem. Fra kommandolinjen, Jeg kørte "c:\windowssystem32lodctr /R" som pr. en post taler om InstallShield synes problemer og at at have løst det for mig.

Jeg har bemærket, at det seneste, min desktop/server fan slukkes aldrig. Jeg ved, det bruges til at slukke for. Jeg tog et øjeblik til at tjekke det ud har bemærket, at den en VMware processen kørte en konsekvent 20% udnyttelse på en af CPUS. Jeg tjekkede event log og så disse fejl i programlogfilen sker snesevis af gange i minuttet:

Windows kan ikke indlæse tæller-DLL UGatherer, det første DWORD i dataafsnittet indeholder fejlkoden Windows.

Windows kan ikke indlæse tæller-DLL UGTHRSVC, det første DWORD i dataafsnittet indeholder fejlkoden Windows.

Windows kan ikke indlæse tæller-DLL MSSCNTRS, det første DWORD i dataafsnittet indeholder fejlkoden Windows.

Hvis jeg detaljeadgang detaljerne i en af disse meddelelser, Jeg får dette:

Kilde: Perflib

Type: Fejl

Kategori: Ingen

Hændelses-ID 1023

Jeg gjorde nogle forskning og der var nogle indikation det kunne være en tilladelse problem med hensyn til adgang til de pågældende dll. Jeg spillede rundt med at ting men kunne ikke påvirke tingene på en positiv måde, så jeg gav på det.

VMware havde indstævne mig om at udføre en opdatering for helt nogle gang, så jeg papirsider ned versionen havde jeg installeret (tilsyneladende bygge"1.0.1 29996") og gjorde opdateringen. Dette opgraderet mig til v1.04. Desværre, det ikke løse problemet.

Jeg kan stoppe den vanvittige antal meddelelser vil min programlogfilen, hvis jeg lukker ned en service benævnt "VMware tilladelse Service". Dette forhindrer mig i at bruge VMware software, så … ikke sådan en stor mulighed.

Vært operativsystemet er Windows XP 64 bit.

Jeg tror ikke, det altid er sket, men husker jeg ikke nogen bestemt begivenhed, der måske har ført til det.

Det er derfor, jeg hader computere.

</slutningen>

Technorati Tags:

Hurtig & Let: Omdøbe overførte fil ved hjælp af SharePoint-objektmodellen Via en hændelse Receiver

OPDATERING: Dette virker, men der er væsentlige begrænsninger, der er beskrevet i kommentarerne. Dette kan stadig være nyttigt i nogle omstaendighederne.

OPDATERING 2: I min aktuelle projekt, brugerne overføre altid dokumenter. Som et resultat, Jeg løbe ikke ind i et problem, hvor MS Word kører og mener, at filen blev omdøbt på det. Jeg løbe ind i et problem, "filen blev ændret af en anden" og løst dette via en simpel semaphore type flag. Brugernes savn hen til ændre en meta datafelt fra standardværdien til noget andet. Af itemupdated() modtageren ser til en gyldig værdi der før du faktisk udfører omdøbe og siden da, Jeg har ikke haft nogen problemer. Din kilometertal kan variere.

Jeg har en klient kravet om at ændre navnet på filer uploades til et bestemt dokumentbibliotek i overensstemmelse med en bestemt navngivningskonvention. API indeholder ikke et "Omdøb()" metode. I stedet, Vi bruger "MoveTo(…)". Her er en minimal smule kode til at opnå dette:

 offentlige tilsidesætte void ItemAdded(SPItemEventProperties egenskaber)
        {
            SPFile f = egenskaber.ListItem.File;

            f.MoveTo(egenskaber.ListItem.ParentList.RootFolder.Url + "/xyzzy.doc");
            f.Update();

        }

Den kun tricky bit er "egenskaber. ListItem.ParentList.RootFolder.Url". MoveTo() metoden kræver en URL. Der mosede op streng point mig til rodmappen på mit aktuelle dokumentbibliotek. Dette tillader mig at undgå hårde kodning i min begivenhed modtager.

Dette er en mere nyttige version, der gør de samme ting, men tildeler navnet på filen til "Titel":

 offentlige tilsidesætte void ItemAdded(SPItemEventProperties egenskaber)
        {
            DisableEventFiring();

            // Tildele titlen på denne post til navnet på selve filen.
 // NOTE: Denne opgave skal finde sted, før vi ændrer selve filen.
 // Kræver opdatering() på SPFile synes at afkræfte egenskaber i
 // nogle følelse.  Opdateringer til "titel" mislykkedes indtil der ændrer (og opdatering() opkald)
 // blev flyttet foran ændringen til filnavnet.
            egenskaber.ListItem["Titel"] = egenskaber.ListItem.File.Name;

            egenskaber.ListItem.Update();

            SPFile f = egenskaber.ListItem.File;

            // Få en udvidelse af fil.  Vi har brug for det senere.
 streng spfileExt = nye FileInfo(f.Name).Udvidelse;

            // Omdøb filen til listeelementets ID og bruge fil forlængelsen at holde
 // del af det intakt.
            f.MoveTo(egenskaber.ListItem.ParentList.RootFolder.Url +
                "/" + egenskaber.ListItem["ID"] + spfileExt);

            // Begå farten.
            f.Update();

            EnableEventFiring();
        }

Forum diskussion: Håndhæve bedste praksis overholdelse i ikke-trivielle MOSS miljø

En fyr, "Mark", har startet op en potentielt interessant nyhedsgruppe diskussion med fokus på "etablering af fremragende SharePoint styring fra starten" for en 35,000 brugermiljø.

Diskussionen er her: http://groups.google.com/group/microsoft.public.sharepoint.portalserver/browse_thread/thread/6d9a738d981af772/1c390b15c5407db6?#1c390b15c5407db6

Pop på over og bidrage!

</slutningen>

Brugerdefineret handling URL vil ikke vise for nye funktion

Jeg er stadig i vane med crafting min funktion XML-filer i hånden, da det er alle helt nyt for mig. Jeg ønsker ikke at stole på en front-end-værktøj at gør ting jeg ikke forstår (Han sagde, da han skrev en blog-indtastning ved hjælp af et værktøj, han ikke forstår).

I dag, Jeg forsøgte at tilføje en brugerdefineret handling til webstedsindstillingerne men det bare ikke ville dukke op. Jeg kunne installere funktionen og se det i site funktioner, men når jeg aktiveret det (uden fejl) Det ville ikke blot dukke op på drop-down menuen.

Jeg endelig indså, at jeg stavet "SharePoint" i attributten placering af den <CustomAction> node. Dette er den dårlige elements.xml fil:

<?XML version="1.0" kodning="UTF-8" ?>
<Elementer xmlns="http://schemas.Microsoft.com/SharePoint/">
  <CustomAction
 Id="SiteActionsToolbar"
 GroupId="SiteActions"
 Placering="Microsoft.Sharepoint.StandardMenu"
 Sekvens="100"
 Titel="Hej!"
 Beskrivelse="Brugerdefinerede menu handling tilføjet via en funktion."
 ImageUrl="_layouts/images/menuprofile.gif">

    <UrlAction URL-adresse="http://www.xyzzy.com"/>

  </CustomAction>
</Elementer>

God:

<?XML version="1.0" kodning="UTF-8" ?>
<Elementer xmlns="http://schemas.Microsoft.com/SharePoint/">
  <CustomAction
 Id="SiteActionsToolBar"
 GroupId="SiteActions"
 Placering="Microsoft.SharePoint.StandardMenu"
 Sekvens="100"
 Titel="Hej!"
 Beskrivelse="Brugerdefinerede menu handling tilføjet via en funktion."
    >
    <UrlAction URL-adresse="http://www.xyzzy.com"/>
  </CustomAction>
</Elementer>

Den ene tog mig godt to timer på at finde ud af 🙂

Jeg tager trøst i faktum, at nogle dage i fremtiden, Jeg vil være i stand til at sige med overbevisning, "tilbage i dag, Jeg måtte gå tre km op ad bakke i sneen (barfodet!) for at installere en brugerdefineret funktion til MOSS. Du børn, du ved ikke, hvor nemt du har det! Stå af min græsplæne!"

Kan ikke vente.

</slutningen>

Technorati Tags: ,