maandelijkse archieven: Mei 2011

PerformancePoint en fout 33494

Een van mijn cliënten belde vandaag wanneer hun PerformancePoint omgeving (in SharePoint 2010) brak.  Een van de app servers in de farm was weinig schijfruimte.  Terwijl het aanpakken van die, de client desinstalleerde "te veel", en de PP van alle spullen gestopt werking.  Verschillende webonderdelen zou tonen "een onverwachte fout opgetreden. Fout 33494. Extra details zijn voor uw beheerder geregistreerd":

image

Ik keek op de fout en niet vinden iets specifiek voor 'Fout 33494' maar dit MSDN-forum posting was nuttig: http://social.technet.microsoft.com/forums/en-us/sharepoint2010setup/thread/E1FE189D-7F89-455D-A98B-C1A12D8626AB

Ik vond ADOMD.Hier NET als een component in de SQL-Server 2008 Featurepack: http://www.microsoft.com/downloads/en/details.aspx?FamilyId=228DE03F-3B5A-428A-923F-58A033D316E1&displaylang=en

image

(Klik om te vergroten)

Ik gedownload en geïnstalleerd die en het vaste alles.

Ik denk dat dit is een mooie excentrieke soort fout, maar als u het raken, u hebt u ten minste een optie.

</einde>

Abonneren op mijn blog.

Volg mij op Twitter op http://www.twitter.com/pagalvin

Lists.asmx, GetListItems en mappen

Ik deed wat onderzoek voor iemand vandaag rond de list.asmx webservice geleverd als onderdeel van SharePoint 2010 (en eerder).  Ze kon krijgen de lijstitems op de root-map (met inbegrip van de namen van de submappen), maar kon niet items in submappen.  Ik deed wat rondkijken op de internets en het is een verrassend gemeenschappelijke vraag.  Nog, Ik kon niet krijgen een goed antwoord op de eenvoudige vraag, "als ik weet dat de map, Hoe krijg ik de items in de map?”  Om eerlijk te zijn, Ik heb niet proberen zo hard aangezien ik figuur dit één uit op mijn eigen voor een tijdje wilde Glimlach.

Dit instellen, Ik heb een site met de naam "Bloggen scenario's" en een aangepaste lijst genaamd "Aangepaste lijst met Sub Folders".  Ik vervolgens mappen met deze naam gemaakt:

  • Jaar 2005
  • Jaar 2006
  • Jaar 2007

Ik een paar items toegevoegd aan de map "Year 2006".  Dit is wat het als kijkt:

image

Mijn vriend is niet C# code te schrijven maar eerder met behulp van Java, dus de SOAP-envelop wat ze echt nodig was.  Om dat te krijgen, Ik schreef een beetje van jQuery en vervolgens fiddler gebruikt om de werkelijke HTTP gesprek.

Hier is het relevante jQuery (Ik heb de code gekopieerd naar beneden hieronder als u wilt kopiëren en plakken):

image

Zij eerste sleutel is om zowel een <queryOptions> en <QueryOptions> knooppunt.  De tweede sleutel is dat de <Map> knooppunt is een URL waarnaar de client toegang heeft.

Kunnen er andere manieren om dit te krijgen, maar dit werkte goed voor mij toen met behulp van jQuery.

Hier is de SOAP-envelop voor de bovenstaande:

<soapenv:Envelop xmlns:soapenv =’http://schemas.xmlsoap.org/soap/envelope/’>                
  <soapenv:Lichaam>
    <GetListItems xmlns =’
http://schemas.Microsoft.com/SharePoint/SOAP/’>
      <listName>Aangepaste lijst met submappen</listName>
      <viewFields>  
        <ViewFields>
          <FieldRef naam =' titel’ />
          <FieldRef naam ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Map>
http://demoserver1/bloggen Scenario's / lijsten/aangepaste lijst met Sub mappen/jaar 2006</Map>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Lichaam>
</soapenv:Envelop>

Een heleboel voorbeelden en discussie rond dit leidde me om te geloven dat alles wat ik nodig was <QueryOptions> en geef een mapnaam.  Voor mij, Ik nodig beide wikkel het binnen <queryOptions> zo goed als een volledig gekwalificeerde URL opgeven voor de <Map> knooppunt.

Hier is de setup jQuery AJAX:

$(document).klaar(functie() {
       var soapEnv =
           "<soapenv:Envelop xmlns:soapenv =’http://schemas.xmlsoap.org/soap/envelope/’> \
               <soapenv:Lichaam> \
                    <GetListItems xmlns =’http://schemas.Microsoft.com/SharePoint/SOAP/’> \
                       <listName>Aangepaste lijst met submappen</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef naam =' titel’ /> \
                              <FieldRef naam ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Map>http://demoserver1/Blogging Scenario's / lijsten/aangepaste lijst met Sub mappen/jaar 2006</Map> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Lichaam> \
           </soapenv:Envelop>";

</einde>

Abonneren op mijn blog.

Volg mij op Twitter op http://www.twitter.com/pagalvin

Lists.asmx, GetList en "waarde kan niet null”

Ik ontdekte vandaag dat de GetList() methode in lists.asmx web-service moet zeer zorgvuldig worden genoemd of het is gevoelig voor het gooien van een mysterieuze "Waarde null kan niet" uitzondering (en dat de veronderstelling dat kunt u voorbij het nog erger algemene foutbericht, "Uitzondering van het type ' Microsoft.SharePoint.SoapServer.SoapServerException’ werd gegooid.")  Specifiek, Ik vond dat u niet elke vorm van voorvoegsel te op de GetList-methode verstrekken.  De volgende jQuery fragment illustreert het punt:

image

Als u dat doen, de webservice reageert met "Waarde kan niet null" als per dit Fiddler-geboden HTTP transcript:

<?XML version = "1.0" encoding = "utf-8"?>
  <zeep:Envelop
     xmlns:zeep ="
http://schemas.xmlsoap.org/soap/envelope/"    
     xmlns:XSi = "
http://www.w3.org/2001/XMLSchema-instance
     xmlns:XSD ="
http://www.w3.org/2001/XMLSchema">

  <zeep:Lichaam>
    <zeep:Schuld>
      <FaultCode>zeep:Server</FaultCode>
      <FaultString>
        Uitzondering van het type ' Microsoft.SharePoint.SoapServer.SoapServerException’ werd gegooid.
      </FaultString>
      <detail>
        <ErrorString xmlns ="
http://schemas.Microsoft.com/SharePoint/SOAP/">
Waarde kan niet null.
        </ErrorString>
      </detail>
    </zeep:Schuld>
  </zeep:Lichaam>
</zeep:Envelop>

Natuurlijk, u niet zou waarschijnlijk toevoegen dat "s0" voorvoegsel op uw eigen, maar sommige tools zijn geneigd om het te doen (zoals Eclipse).

Dit is des te meer verwarrend / frustrerend omdat andere methoden voorvoegsels tolereren.  Bijvoorbeeld, de GetListCollection methode erg niet als het wordt zijn voorafgegaan, zelfs met onzin voorvoegsels zoals "xyzzy":

image

Dit "waarde null kan niet" lijkt vrij algemeen met lists.asmx dus hopelijk dit iemand uit in de toekomst helpen zal.

</einde>

Abonneren op mijn blog.

Volg mij op Twitter op http://www.twitter.com/pagalvin

Eindeloos nesten <div> Tags en jQuery

Dit lijkt een excentrieke onderwerp, Ik ben niet zeker dat het is echt de moeite waard bloggen over, maar dat heeft nooit gestopt me vóór, Dus hier gaan we Glimlach

Ik ben uit te werken op een project waar ik te sommige gegevens uit een zoekopdracht trekken ben, verpakking het omhoog in een XML-bericht en vervolgens dat XML wordt uiteindelijk omgezet in HTML via XSLT.  Er is een heleboel jQuery betrokken, een beetje waarvan sommige tabben functionaliteit implementeert.  Wanneer u klikt op een tabblad (echt, een <div>), jQuery roept .hide() en .show() op diverse divs (de eerste pagina geladen gedownload alle inhoud, zodat er in dit geval geen terugsturen zijn).

Een heleboel uren geleden, het tabblad schakelen logica begon te gedragen onregelmatig en het zou niet een van mijn tabs tonen.  Ik uiteindelijk gevolgd het neer op het feit dat internet explorer (ten minste) dacht dat de <div> Tags genest ver, veel dieper dan bestemd.De werkbalk ontwikkelaar zou weergeven:

-<div id = "Tab1Content">
  -<div>
    -<div>
      -<div id = "Tab2Content">
        -<div>
           …………………………
                   </div>  <— Ten slotte tonen het helemaal naar beneden hier werd gesloten!

Dus, Als ik deed een $("# Tab1Content").verbergen(), Ik zou ook Tab2 verbergen en ik kon nooit tonen Tab2 als ik niet ook Tab1.  Ik gekopieerd en geplakt de code omhoog in visual studio en het bleek alles voor de div's voering tot keurig, net als zij waren verondersteld om te doen, op zoek als dit:

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

Ik sloeg mijn hoofd tegen de muur voor een tijdje en gemerkt dat in de werkelijke HTML code is het genereren veel van lege <div> Tags, zoals:

<lichaam>

  <div id = "Tab1Content">

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

  </div>

  <div id = "Tab2Content">

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

  </div>

</lichaam>

(Het bovenstaande is waaaaaaaaaaaay gesimplificeerd.  De lege div-tags zijn volkomen geldig. Sommige van mijn <div> Tags waren vol van inhoud, maar veel meer waren niet.  Ik kwam tot het besef dat mijn <XSL:for-each> richtlijnen werden de korte vorm uitstoten div tags wanneer de xsl:for-each niet ' gegevens vinden.  Ik gedwongen een HTML-commentaar in de output, zoals:

image

 

Nadat ik deed dat, alle de div's mooi opgesteld en begon te werken mijn tabblad schakelen.

Zoals altijd, Ik hoop dat dit helpt iemand in een snuifje.

</einde>

Abonneren op mijn blog.

Volg mij op Twitter op http://www.twitter.com/pagalvin

Quick Fix: "De naam van inhoudstype '$ Resources:ReportServerResources … mag geen bevatten … speciale tekens”

Ik heb de besteding van enige tijd een SharePoint opruimen 2010 site en een van de cleanup kwesties heeft betrekking op een corrupte / onjuist geïnstalleerd SQL Server verslag Services kwestie.  Het probleem ontstond toen een van mijn collega's wilde een site opslaan als sjabloon en maak vervolgens een nieuwe site op basis van die sjabloon maken.  Het opslaan operatie werkte boete, maar toen ze probeerde te maken van de nieuwe site, SharePoint weergegeven het volgende foutbericht:

Fout

De naam van inhoudstype '$ Resources:ReportServerResources,DataSourceContentTypeName;' mag geen bevatten: \ / : * ? “ # % < > { } | ~ & , twee opeenvolgende periodes (..), of speciale tekens zoals een tab.

Hier is een scherm GLB:

 

image

Ik had een blik op de inhoudstypen in de site en vond dit:

image

Die inhoudstypen zijn duidelijk ongezonde.

Dit probleem lijkt te veel op de Internets komen en er lijkt niet een interne consensus over hoe op te lossen.  Ik vond een handige tabel die de slechte inhoudstype namen aan goede inhoudstype namen hier toegewezen: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  Ik handmatig bijgewerkt hen thusly:

image

(BrightStarr in de naam is uiteraard optioneel, maar het kan geen kwaad Glimlach )

Dit stond me toe om een nieuwe sjabloon te maken en niet om het even wat breken op de andere sites, waaronder sommige PerformancePoint Server dingen die een volledig andere groep van mensen werkten op.  Vervolgens kon ik een nieuwe site maken op de sjabloon.  Succes!

Ik ben niet zeker dat dit een 100% oplossing, maar het kreeg me en iedereen betrokken voorbij dit vervelende fout.  Als ik iets nieuws te vinden, Ik zal een update plaatsen.  Mijn nervositeit vloeit voort uit het feit dat deze namen niet moeten in de eerste plaats vergissen en door de vaststelling van de weergavenaam, Ik ben niet aanraken de interne naam. 

</einde>

Abonneren op mijn blog.

Volg mij op Twitter op http://www.twitter.com/pagalvin

Een oorzaak voor "de maker van deze schuld niet een reden specificeerde.”

Ik heb gedaan een heleboel werk met SharePoint search laatste tijd en specifiek de KeywordQuery klasse, eigenschappen en methoden.

Als u wilt dat de resultaatset om terug te keren resultaten boven en buiten de gebruikelijke verdachten (Zie hier), u toevoegen aan de collectie SelectedProperties, Als in:

myKeywordQuery.SelectProperties.Add("xyzzy");

Hartelijk dank en een tip van de hoed aan Corey Roth en deze enorm nuttig blogpost (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

In mijn geval, "xyzzy" is eigenlijk een beheerde eigenschap niet.  Wanneer ik toegevoegd aan SelectedProperties toch, SharePoint gooide een van mijn favoriete ooit runtime uitzonderingen:

"De maker van deze schuld specificeerde niet een reden."

Ik houd vooral de hoofdletter "R" in reden.  Dit klinkt voor mij als de.NETTO equivalent van"I have no mouth, and I must scream.”

</einde>

Abonneren op mijn blog.

Volg mij op Twitter op http://www.twitter.com/pagalvin

Handige referentie: Standaard resultaten van KeywordQuery Search

Wanneer u het aanroepen van de Execute() methode op een KeywordQuery, u kunt een ResultTable gebaseerd op ResultType.RelevantResults.  Dit codefragment illustreert wat ik bedoel:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

De resulterende tabel zal hebben de volgende kolommen met informatie: 

WorkId
Rang
Titel
Auteur
Grootte
Pad
Beschrijving
Schrijven
SiteName
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
ContentClass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

Ik deze lijst afgeleid van een SharePoint 2010 milieu, Enterprise edition.  Hopelijk zal het worden handig om iemand in de toekomst.

</einde>

Abonneren op mijn blog.

Volg mij op Twitter op http://www.twitter.com/pagalvin

Een van de redenen voor: "Failed to extract het cab-bestand in de oplossing”

Tijdens het werken aan een webonderdeel visual studio project vandaag, Ik heb een kleine re-org van sommige bestanden in de map _layouts worden gebracht als onderdeel van het implementatieproces. Specifiek, Mij verdopen een .js bestand van "TypeAhead.js" naar "TypeAhead(oude).js"  Ik ben van plan om het te verwijderen zo snel als zijn opvolger "TypeAhead.js" juiste bewijst.  Het zag er als volgt:

image

Dit veroorzaakt onmiddellijk een probleem met visual studio, toen ik probeerde om het project te implementeren:

Er is een fout opgetreden in implementatie stap "Oplossing toevoegen": Failed to extract het cab-bestand in de oplossing.

Het blijkt dat u niet een haakje in bestandsnamen moeten zetten.  Ik verwijderde de pars en dat het probleem opgelost.

</einde>

Abonneren op mijn blog.

Volg mij op Twitter op http://www.twitter.com/pagalvin