Månedlige Arkiver: Mai 2011

PerformancePoint og feil 33494

En av mine klienter i dag kalt når miljøet PerformancePoint (i SharePoint 2010) brøt sammen.  En av app servere i farmen var lite diskplass.  Under behandlingen som, klienten avinstallert "for mye" og PP ting alle stoppet fungerer.  Ulike webdeler ville vise "en uventet feil oppstod. Feil 33494. Flere detaljer er loggført for systemansvarlig":

image

Jeg så opp feilen, og ikke fant noe konkret "Error 33494" men dette MSDN-foraene postering var nyttig: http://social.technet.microsoft.com/forums/en-us/sharepoint2010setup/thread/E1FE189D-7F89-455D-A98B-C1A12D8626AB

Jeg fant ADOMD.NET her som en komponent i SQL Server 2008 Funksjonspakke: http://www.microsoft.com/downloads/en/details.aspx?FamilyId=228DE03F-3B5A-428A-923F-58A033D316E1&displaylang=en

image

(Klikk for å forstørre)

Jeg laster ned og installert som og det faste alt.

Jeg tror dette er en pen oddball type feil, men hvis du treffer den, du minst har du muligheten.

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

Lists.asmx, GetListItems og -mapper

Jeg gjorde noen undersøkelser for noen i dag rundt list.asmx-webtjeneste som en del av SharePoint 2010 (og tidligere).  Hun var i stand til å få listeelementene i rotmappen (deriblant med navn på undermapper), men kunne ikke få elementer i undermapper.  Jeg gjorde noen ser på internets, og det er en overraskende vanlige spørsmål.  Ennå, Jeg kunne ikke få en bra svar pσ enkelt spørsmål, "Hvis jeg vet mappen, Hvordan får jeg elementene i mappen?”  For å være ærlig, Jeg gjorde ikke prøve alle at hardt siden jeg har ønsket å figur dette en ut på min egen for en stund Smil.

Sette opp dette, Jeg laget et nettsted som heter "Blogging scenarier" og en egendefinert liste som heter "Egendefinert liste med Sub mapper".  Jeg deretter opprettet mapper med navnet:

  • År 2005
  • År 2006
  • År 2007

Jeg har lagt noen elementer til mappen "Year 2006".  Dette er hvordan det ser ut:

image

Min venn er ikke skrive C#-kode, men heller benytter Java, SOAP-konvolutten var så hva hun virkelig trengte.  Å få det, Jeg skrev en bit av jQuery og deretter brukt fiddler for å få faktiske HTTP samtale.

Her er den aktuelle jQuery (Jeg kopierte koden ned nedenfor hvis du vil kopiere/lime):

image

De første nøkkelen er å inkludere både en <queryOptions> og <QueryOptions> noden.  Den andre nøkkelen er at den <Mappen> noden er en URL-adresse som klienten har tilgang.

Det kan være andre måter å få dette, men dette jobbet godt for meg da ved hjelp jQuery.

Her er SOAP-konvolutten for det over:

<soapenv:Konvolutt xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’>                
  <soapenv:Kroppen>
    <GetListItems xmlns =’
http://schemas.Microsoft.com/SharePoint/SOAP/’>
      <listName>Egendefinert liste med Sub-mapper</listName>
      <viewFields>  
        <ViewFields>
          <FieldRef navn =' tittel’ />
          <FieldRef navn ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Mappen>
http://demoserver1/Blogging Scenarier, lister, egendefinert liste med Sub-mapper/år 2006</Mappen>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Kroppen>
</soapenv:Konvolutt>

Mange eksempler og diskusjon rundt dette førte meg til å tro at alt jeg trenger var <QueryOptions> og angi et mappenavn.  For meg, Jeg trenger både brytes det i <queryOptions> i tillegg til å angi et fullstendig kvalifisert for den <Mappen> noden.

Her er oppsettet jQuery AJAX:

$(dokumentet).klar(funksjonen() {
       var soapEnv =
           "<soapenv:Konvolutt xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’> \
               <soapenv:Kroppen> \
                    <GetListItems xmlns =’http://schemas.Microsoft.com/SharePoint/SOAP/’> \
                       <listName>Egendefinert liste med Sub-mapper</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef navn =' tittel’ /> \
                              <FieldRef navn ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Mappen>http://demoserver1/Blogging Scenarier, lister, egendefinert liste med Sub-mapper/år 2006</Mappen> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Kroppen> \
           </soapenv:Konvolutt>";

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

Lists.asmx, GetList og "verdi kan ikke være null”

Jeg oppdaget i dag som GetList() metoden i lists.asmx webtjenesten har å bli kalt veldig nøye, eller det er utsatt for å kaste en mystisk "Verdi kan ikke være null"-unntak (og som er forutsatt du kan komme forbi enda verre generisk feilmelding, "Unntak av typen ' Microsoft.SharePoint.SoapServer.SoapServerException’ ble kastet.")  Spesielt, Jeg fant ut at du ikke kan tilby noen form for prefiks i GetList-metoden.  Følgende jQuery snippeten illustrerer poenget:

image

Hvis du gjøre det, Webtjenesten svarer med "Verdi kan ikke være null" i henhold til dette Fiddler-gitt HTTP transkripsjon:

<?XML version = "1.0" Encoding = "utf-8"?>
  <såpe:Konvolutt
     xmlns:SOAP ="
http://schemas.xmlsoap.org/SOAP/Envelope/"    
     xmlns:xsi = "
http://www.w3.org/2001/XMLSchema-instance
     xmlns:XSD ="
http://www.w3.org/2001/XMLSchema">

  <såpe:Kroppen>
    <såpe:Feilårsak>
      <faultcode>såpe:Server</faultcode>
      <faultString:>
        Unntak av typen ' Microsoft.SharePoint.SoapServer.SoapServerException’ ble kastet.
      </faultString:>
      <detalj>
        <xmlns errorString ="
http://schemas.Microsoft.com/SharePoint/SOAP/">
Verdien kan ikke være null.
        </errorString>
      </detalj>
    </såpe:Feilårsak>
  </såpe:Kroppen>
</såpe:Konvolutt>

selvfølgelig, du vil ikke sannsynligvis legge prefikset "s0" på egen hånd, men noen verktøy er tilbøyelig til å gjøre det. (som Eclipse).

Dette er alle mer forvirrende / frustrerende fordi andre metoder tolerere prefikser.  For eksempel, den GetListCollection metoden oppmerksom ikke på hvis det er blitt prefikset, selv med tull prefikser som "xyzzy":

image

Dette "verdi ikke kan være null" synes ganske vanlig med lists.asmx så forhåpentligvis vil dette hjelpe noen ut i fremtiden.

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

Uendelige fuglefjell <div> Koder og jQuery

Dette virker som en så underlig tema, Jeg er ikke sikker på at det er virkelig verdt blogging om, men som har aldri stoppet meg før, så her gå vi Smil

Jeg arbeider på et prosjekt der jeg trekke noen data fra et søk, emballasje det i en XML-meldingen og deretter at XML er til slutt transformert til HTML via XSLT.  Det er mye av jQuery involvert, en bit av som implementerer noen tabulatornumre funksjonalitet.  Når du klikker på en kategori (virkelig, en <div>), jQuery påkaller .hide() og .show() på ulike divs (Startside belastningen laster ned alt innholdet slik at det er ingen postbacks i dette tilfellet).

En haug med timer siden, kategorien bytte logikk begynte å virke uregelmessig og det vil ikke vise en av Mine fliker.  Jeg til slutt spores det ned til faktum at internet explorer (minst) tenkte at den <div> koder som er nestet langt, langt dypere enn beregnet.Ville vise utviklerverktøylinjen:

-<div id = "Tab1Content">
  -<div>
    -<div>
      -<div id = "Tab2Content">
        -<div>
           …………………………
                   </div>  <-til slutt viser det ble lukket hele veien ned her!

Så, Hvis jeg gjorde en $("# Tab1Content").Skjul(), Jeg ville også skjule Tab2 og jeg kunne aldri vise Tab2 hvis ikke jeg også vise Tab1.  Jeg kopierte og limte inn koden i visual studio og det viste alle div's lining opp pent, akkurat som de skulle gjøre, ser ut som dette:

-<div id = "Tab1Content">
  +<div>
  +<div>
-<div id = "Tab2Content">
  +<div>
  +<div>

Jeg slo hodet mot veggen for en stund, og la merke til at i den faktiske HTML koden var genererer mye er tom <div> Tags, som:

<kroppen>

  <div id = "Tab1Content">

    <div id = "row1" />
    <div id = "row2" />

  </div>

  <div id = "Tab2Content">

    <div id = "row1" />
    <div id = "row2" />

  </div>

</kroppen>

(Dette er waaaaaaaaaaaay oversimplified.  Tom div-koder er helt gyldig. Noen av mine <div> koder var fulle av innhold, men mange flere ble ikke.  Jeg kom til realisering som min <XSL:for each> direktiver var emitting kort-skjemaet div koder når xsl:for each gjorde ikke ' finne noen data.  Jeg tvunget en HTML-kommentar i utdataene, som vist:

image

 

Etter at jeg gjorde det, alle div lined opp pent og min kategorien bytte begynte å arbeide.

Som alltid, Jeg håper dette hjelper noen i en klemme.

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

Quick Fix: "Navn på innholdstype"$ Resources:ReportServerResources … kan ikke inneholde … spesialtegn”

Jeg har vært tilbringe litt tid rydde opp en SharePoint 2010 området og ett av Opprydding-problemer som er knyttet til en skadet / feilaktig installert SQL Server rapporten Services-problem.  Problemet oppsto da en av mine kolleger prøvde å lagre et område som en mal, og deretter oppretter du oppretter et nytt område som er basert på denne malen.  Lagre operasjonen fungerte fint, men da hun prøvde å opprette det nye området, SharePoint, vises følgende feilmelding:

Feil

Innholdstypen navnet "$ Resources:ReportServerResources,DataSourceContentTypeName;' kan ikke inneholde: \ / : * ? “ # % < > { } | ~ & , to etterfølgende punktum (..), eller spesialtegn, for eksempel en tabulator.

Her er en cap på skjermen:

 

image

Jeg hadde en titt på innholdstypene i området og grunnlegge denne:

image

Disse innholdstypene er klart usunn.

Dette problemet ser ut til å komme opp mye på Internets og det synes ikke å være en enkelt konsensus om hvordan du løser det.  Jeg fant en hendig tabell som tilordnet dårlig innholdstypenavnene til god innholdstypen navn her: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  Jeg oppdatert manuelt dem thusly:

image

(BrightStarr i navnet er åpenbart valgfritt, men det kan ikke skade Smil )

Dette tillater meg å opprette en ny mal og skade ikke noe på andre nettsteder, inkludert noen PerformancePoint Server ting som en helt annen gruppe personer jobber på.  Jeg kunne deretter oppretter et nytt område på malen.  Suksess!

Jeg er ikke sikker på at dette er en 100% løsning, men det fikk meg og alle parter forbi dette irriterende feil.  Hvis jeg finner noe nytt, Jeg skal legge inn en oppdatering.  Min nervøsitet stammer fra det faktum at disse navnene ikke bør være galt i utgangspunktet og ved å rette opp visningsnavnet, Jeg er ikke berøre det interne navnet. 

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

En sak for "skaperen av denne feilen ikke angav en grunn.”

Jeg har gjort mye arbeid med det siste SharePoint-Søk og spesielt KeywordQuery-klassen, Egenskaper og metoder.

Hvis du vil at resultatsettet til å returnere resultater utover de vanlige mistenkte (se her), du legger det til i samlingen SelectedProperties, som i:

myKeywordQuery.SelectProperties.Add("xyzzy");

Mange takk og et tips av hatten å Corey Roth og Dette enormt nyttig blogginnlegg (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

I mitt tilfelle, "xyzzy" er ikke egentlig en forvaltet egenskap.  Når jeg la det til SelectedProperties uansett, SharePoint kastet en av mine favoritt noensinne runtime-unntak:

"Den som oppretteren denne feilen angav ikke en grunn."

Jeg liker spesielt hovedstaden "R" i grunn.  Dette høres for meg ut som den.NET tilsvarer"Jeg har ingen munn, og jeg må skrike.”

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

Hendig referanse: Standard resultater fra KeywordQuery Søk

Når du starte Execute() metoden på en KeywordQuery, Du kan opprette en ResultTable basert på ResultType.RelevantResults.  Denne kodebiten illustrerer hva jeg mener:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

Den resulterende tabellen vil ha følgende kolonner med informasjon: 

Arbeids-IDen
Rang
Tittel
Forfatter
Størrelse
Banen
Beskrivelse
Skrive
Områdenavn
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
ContentClass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

Jeg avledet denne listen fra en SharePoint 2010 miljø, Enterprise edition.  Forhåpentligvis vil det praktiske til noen i fremtiden.

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

En av grunnene til: "Kan ikke trekke ut cab-fil i løsningen”

Mens du arbeider med en webdel for visual studio-prosjekt i dag, Jeg gjorde en mindre re-org av noen filer å bli satt inn i mappen _layouts som en del av distribusjonsprosessen. Spesielt, Jeg har fått nytt navn en js-fil fra "TypeAhead.js" til "TypeAhead(gamle).js"  Jeg har tenkt å fjerne den så snart den etterfølgende aktiviteten "TypeAhead.js" beviser riktig.  Det så ut som dette:

image

Dette forårsaket et problem med visual studio umiddelbart når jeg prøvde å distribuere prosjektet:

Feil i distribusjonen trinn "Legge løsning": Kan ikke trekke ut cab-fil i løsningen.

Det viser seg at du ikke bør sette en parentes i filnavn.  Jeg fjernet den parens og som løst problemet.

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin