archivi mensili: Maggio 2011

PerformancePoint e l'errore 33494

Uno dei miei clienti chiamati oggi quando loro ambiente PerformancePoint (in SharePoint 2010) si ruppe.  Uno dei server della farm app era insufficiente spazio su disco.  Affrontando che, il client disinstallato "troppo" e la roba PP tutti smesso di funzionare.  Varie parti web avrebbero mostrato "inatteso errore. Errore 33494. Ulteriori dettagli sono stati registrati per l'amministratore":

image

Guardato l'errore e non ha trovato nulla specifico per "Errore 33494" ma questo forum MSDN distacco è stato utile: http://social.technet.microsoft.com/forums/en-us/sharepoint2010setup/thread/E1FE189D-7F89-455D-A98B-C1A12D8626AB

Ho trovato ADOMD.NET qui come componente di SQL Server 2008 Feature Pack: http://www.microsoft.com/downloads/en/details.aspx?FamilyId=228DE03F-3B5A-428A-923F-58A033D316E1&displaylang=en

image

(Clicca per ingrandire)

Ho scaricare e installato che e tutto e ' fissato.

Penso che questo è un tipo abbastanza stravaganti di errore, ma se si ha colpito, voi almeno voi avere un'opzione.

</fine>

Iscriviti al mio blog.

Seguimi su Twitter a http://www.twitter.com/pagalvin

Lists.asmx, GetListItems e le cartelle

Stavo facendo qualche ricerca per qualcuno oggi intorno al servizio di web list.asmx fornito come parte di SharePoint 2010 (e precedenti).  Lei era in grado di ottenere gli elementi dell'elenco alla cartella principale (anche i nomi delle sotto-cartelle), ma non poteva ottenere elementi in sotto-cartelle.  Ho fatto alcuni guardando in giro su internets ed è una domanda sorprendentemente comune.  Ancora, Non ho potuto ottenere una buona risposta alla domanda semplice, "se conosco la cartella, come ottenere gli elementi nella cartella?”  Ad essere onesti, Non provato duramente tutto ciò che dal momento che ho voluto capire questo una fuori il mio per un po ' sorriso, sorridere.

Per configurare questo, Ho creato un sito denominato "Blogging scenari" e un elenco personalizzato denominato "Elenco personalizzato con Sub cartelle".  Ho poi creato cartelle denominate:

  • Anno 2005
  • Anno 2006
  • Anno 2007

Ho aggiunto alcuni articoli nella cartella "Anno 2006".  Questo è quello che sembra:

image

Il mio amico non è scrittura di codice c#, ma piuttosto utilizzando Java, così la SOAP envelope era cosa aveva bisogno.  Per ottenere che, Ho scritto un po ' di jQuery e quindi utilizzato violinista per ottenere la conversazione reale HTTP.

Ecco le pertinenti jQuery (Ho copiato il codice giù sotto se volete copiare/incollare):

image

Essi prima chiave consiste nell'includere sia un <queryOptions> e <QueryOptions> nodo.  La seconda chiave è che il <Cartella> il nodo è un URL a cui il cliente ha accesso.

Ci possono essere altri modi per arrivare a questo, ma questo ha funzionato bene per me quando si utilizza jQuery.

Ecco la SOAP envelope sopra:

<soapenv:Busta xmlns:soapenv =’http://schemas.xmlsoap.org/soap/envelope/’>                
  <soapenv:Corpo>
    <GetListItems xmlns =’
http://schemas.Microsoft.com/SharePoint/SOAP/’>
      <listName>Elenco personalizzato con sottocartelle</listName>
      <viewFields>  
        <ViewFields>
          <FieldRef Name =' titolo’ />
          <FieldRef Name ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Cartella>
http://demoserver1/Blogging Elenco di scenari/liste/Custom con Sub cartelle/anno 2006</Cartella>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Corpo>
</soapenv:Busta>

Un sacco di esempi e la discussione intorno a questo mi ha portato a credere che tutto quello che serve è stato <QueryOptions> e specificare un nome di cartella.  Per me, Io ho bisogno di entrambi avvolgerla all'interno <queryOptions> così come specificare un URL completo per il <Cartella> nodo.

Qui è l'installazione di AJAX jQuery:

$(documento).pronto(funzione() {
       var soapEnv =
           "<soapenv:Busta xmlns:soapenv =’http://schemas.xmlsoap.org/soap/envelope/’> \
               <soapenv:Corpo> \
                    <GetListItems xmlns =’http://schemas.Microsoft.com/SharePoint/SOAP/’> \
                       <listName>Elenco personalizzato con sottocartelle</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef Name =' titolo’ /> \
                              <FieldRef Name ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Cartella>http://demoserver1/Blogging Elenco di scenari/liste/Custom con Sub cartelle/anno 2006</Cartella> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Corpo> \
           </soapenv:Busta>";

</fine>

Iscriviti al mio blog.

Seguimi su Twitter a http://www.twitter.com/pagalvin

Lists.asmx, GetList e "valore non può essere null”

Ho scoperto oggi che la GetList() Metodo in lists.asmx servizio Web deve essere chiamato con molta attenzione, o è incline a generare un misterioso "Valore non può essere null" eccezione (e che sta assumendo che si può andare oltre il messaggio di errore generico anche peggio, "Eccezione di tipo ' SoapServerException’ è stato gettato.")  In particolare, Ho trovato che è non può fornire qualsiasi tipo di prefisso del metodo GetList.  Il seguente frammento di jQuery illustra il punto:

image

Se lo fai, il servizio web risponde con "Valore non può essere null" come per questo violinista-fornito di trascrizione HTTP:

<?XML version = "1.0" Encoding = "utf-8"?>
  <sapone:Busta
     xmlns:sapone ="
http://schemas.xmlsoap.org/soap/envelope/"    
     xmlns:xsi = "
http://www.w3.org/2001/XMLSchema-instance
     xmlns:XSD ="
http://www.w3.org/2001/XMLSchema">

  <sapone:Corpo>
    <sapone:Colpa>
      <FaultCode>sapone:Server</FaultCode>
      <FaultString>
        Eccezione di tipo ' SoapServerException’ è stato gettato.
      </FaultString>
      <dettaglio>
        <ErrorString xmlns ="
http://schemas.Microsoft.com/SharePoint/SOAP/">
Valore non può essere null.
        </ErrorString>
      </dettaglio>
    </sapone:Colpa>
  </sapone:Corpo>
</sapone:Busta>

Naturalmente, è probabilmente non sarebbe aggiungere tale prefisso "s0" sul proprio, ma alcuni strumenti sono inclini a farlo (come eclissi).

Questo è ancora più confuso / frustrante perché altri metodi tollerano i prefissi.  Per esempio, il GetListCollection Metodo non mente se esso è stato preceduto da, anche con i prefissi di sciocchezze come "xyzzy":

image

Questo "valore non può essere null" sembra piuttosto comune con lists.asmx quindi speriamo questo aiuterà qualcuno fuori in futuro.

</fine>

Iscriviti al mio blog.

Seguimi su Twitter a http://www.twitter.com/pagalvin

Nidificazione all'infinito <div> Tag e jQuery

Questo mi sembra un soggetto così stravaganti, Non sono sicuro che vale davvero la pena bloggare su, ma che non ha mai smesso prima di me, quindi qui si va sorriso, sorridere

Sto lavorando su un progetto dove sto tirando alcuni dati da una ricerca, imballaggio in un messaggio XML e poi il codice XML viene trasformato in definitiva in HTML tramite XSLT.  C'è un sacco di jQuery coinvolte, un bit di che implementa alcune funzionalità di tabulazione.  Quando fa clic su una scheda (davvero, un <div>), jQuery richiama .hide() e .show() su vari DIV (il caricamento della pagina iniziale Download tutto il contenuto, quindi non ci sono in questo caso postback).

Un mucchio di ore fa, la scheda logica di commutazione ha iniziato a comportarsi in modo strano e non mostra una delle mie schede.  Io alla fine esso monitorati al fatto che internet explorer (almeno) pensava che la <div> tag nidificati lontano, molto più profondo da desiderata.Avrebbe mostrato la developer toolbar:

-<div id = "Tab1Content">
  -<div>
    -<div>
      -<div id = "Tab2Content">
        -<div>
           …………………………
                   </div>  <— Infine mostrandolo è stata chiusa fino in fondo!

Così, Se ho fatto un $("# Tab1Content").Nascondi(), Sarebbe anche nascondere Tab2 e mai potuto mostrare Tab2 anche se non ha mostro Tab1.  Ho copiato e incollato il codice in visual studio e ha mostrato a tutti di rivestimento del div fino piacevolmente, proprio come avrebbero dovuto fare, guardando come questo:

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

Ho battuto la testa contro il muro per un po' e ho notato che nel codice HTML effettivo codice era generando un sacco di vuoto <div> Tag, come:

<corpo>

  <div id = "Tab1Content">

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

  </div>

  <div id = "Tab2Content">

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

  </div>

</corpo>

(Quanto sopra è waaaaaaaaaaaay semplificato.  I tag div vuota sono totalmente validi. Alcuni dei miei <div> Tag erano piene di contenuti, ma molti altri non hanno.  Sono venuto alla realizzazione che mio <xsl:for each> le direttive sono state che emettono la forma abbreviata div tag quando xsl:for each non ' trovare tutti i dati.  Sono costretto a un commento HTML nell'output, come illustrato:

image

 

Dopo che ho fatto che, il div in fila piacevolmente ed il mio switching tab iniziò a lavorare.

Come sempre, Spero che questo aiuta a qualcuno in un pizzico.

</fine>

Iscriviti al mio blog.

Seguimi su Twitter a http://www.twitter.com/pagalvin

Quick Fix: "Il nome del tipo di contenuto '$ Resources:ReportServerResources … non può contenere … caratteri speciali”

Ho trascorso qualche tempo ripulire una SharePoint 2010 sito e una delle questioni pulitura riguarda un corrotto / installato in modo non corretto problema di SQL Server Reporting Services.  Il problema è sorto quando uno dei miei colleghi ha provato a salvare un sito come un modello e creare quindi creare un nuovo sito basato su tale modello.  Il salvataggio operazione ha funzionato bene, ma quando lei ha cercato di creare il nuovo sito, SharePoint visualizzato il seguente messaggio di errore:

Errore

Il nome del tipo di contenuto '$ Resources:ReportServerResources,DataSourceContentTypeName;' non può contenere: \ / : * ? “ # % < > { } | ~ & , due periodi consecutivi (..), o caratteri speciali come ad esempio una scheda.

Ecco un screen cap:

 

image

Ho dato un'occhiata ai tipi di contenuto nel sito e trovato questo:

image

Questi tipi di contenuto sono chiaramente malsani.

Questo problema sembra venire molto su Internets e non sembra essere un singolo consenso su come risolverlo.  Ho trovato una tabella utile mappato i nomi di cattivo tipo di contenuto per i nomi dei tipi di contenuto buono qui: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  Aggiornato manualmente li thusly:

image

(BrightStarr il nome è ovviamente facoltativo, ma non sarebbe male sorriso, sorridere )

Questo mi ha permesso di creare un nuovo modello e non rompe nulla su altri siti, tra cui alcune cose di PerformancePoint Server che un gruppo completamente diverso di persone stavano lavorando su.  Poi è stato in grado di creare un nuovo sito sul modello.  Successo!

Non sono sicuro che questo è un 100% soluzione, ma mi ha fatto e tutti i soggetti coinvolti oltre questo fastidioso errore.  Se trovo qualcosa di nuovo, I'll post un aggiornamento.  Il mio nervosismo deriva dal fatto che questi nomi non dovrebbero essere sbagliati in primo luogo e fissando il nome visualizzato, Io non sto toccando il nome interno. 

</fine>

Iscriviti al mio blog.

Seguimi su Twitter a http://www.twitter.com/pagalvin

Una delle Cause per "il creatore di questo difetto non ha specificato un motivo.”

Ho fatto un sacco di lavoro con SharePoint ricerca ultimamente e in particolare la classe KeywordQuery, Proprietà e metodi.

Se si desidera che il set di risultati a restituire risultati oltre i soliti sospetti (vedi qui), aggiungerlo all'insieme SelectedProperties, come in:

myKeywordQuery.SelectProperties.Add("xyzzy");

Molte grazie e una punta di cappello a Corey Roth e Questo post del blog molto utile (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

Nel mio caso, "xyzzy" non è in realtà una proprietà gestita.  Quando ho aggiunto al SelectedProperties comunque, SharePoint gettò uno dei miei preferiti mai eccezioni runtime:

"Il creatore di questo difetto non ha specificato una ragione."

Piace soprattutto la capitale "R" nel motivo.  Questo suona per me come il.Equivalente netto di"I have no bocca, e devo urlare.”

</fine>

Iscriviti al mio blog.

Seguimi su Twitter a http://www.twitter.com/pagalvin

Utile riferimento: Risultati predefiniti da KeywordQuery di ricerca

Quando si richiama il Execute() Metodo su un KeywordQuery, è possibile creare un ResultTable basato su ResultType.RelevantResults.  Questo frammento di codice viene illustrato cosa intendo:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

La tabella risultante avrà le seguenti colonne di informazioni: 

ID lavoro
Rango
Titolo
Autore
Dimensioni
Percorso
Descrizione
Scrivere
Nomesito
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
ContentClass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

Questo elenco è derivano una SharePoint 2010 ambiente, Enterprise edition.  Spero che sarà utile a qualcuno in futuro.

</fine>

Iscriviti al mio blog.

Seguimi su Twitter a http://www.twitter.com/pagalvin

Uno dei motivi per: "Non è riuscito a estrarre il file cab nella soluzione”

Mentre si lavora su una parte del web di visual studio progetto oggi, Ho fatto un re-org minori di alcuni file da mettere nella cartella layouts come parte del processo di distribuzione. In particolare, Ho rinominato un file js da "TypeAhead.js" in "TypeAhead(vecchio).js"  Ho intenzione di rimuoverlo come suo successore "TypeAhead.js" si rivela corretto.  Si presentava così:

image

Questo ha causato immediatamente un problema con visual studio quando ho provato a distribuire il progetto:

Si è verificato un errore in fase di distribuzione 'Aggiungi soluzione': Non è riuscito a estrarre il file cab nella soluzione.

Si scopre che non si dovrebbe mettere una parentesi nei nomi di file.  Ho rimosso la parentesi e che ha risolto il problema.

</fine>

Iscriviti al mio blog.

Seguimi su Twitter a http://www.twitter.com/pagalvin