Měsíční archivy: Květen 2011

Chyba a PerformancePoint 33494

Jeden z mých klientů dnes volal, když jejich PerformancePoint prostředí (služby SharePoint. 2010) rozbilo.  Jeden z aplikace serverů v serverové farmě byl dostatek místa na disku.  Při řešení,, Klient odinstalován "příliš mnoho" a všechny PP věci přestaly fungovat.  Různé webové části by ukázal, "došlo k neočekávané chybě. Chyba 33494. Další podrobnosti byly protokolovány pro správce":

image

Vzhlédl k chybě a nenašli něco konkrétního na "Chyba 33494", ale pomohlo tohoto fóra MSDN účtování: http://social.technet.microsoft.com/forums/en-us/sharepoint2010setup/thread/E1FE189D-7F89-455D-A98B-C1A12D8626AB

Našel jsem ADOMD.NET zde jako součást v serveru SQL Server. 2008 Feature Pack: http://www.microsoft.com/downloads/en/details.aspx?FamilyId=228DE03F-3B5A-428A-923F-58A033D316E1&displaylang=en

image

(Zvětšit)

Stáhnout a nainstalovat, a to všechno vyřešilo.

Myslím, že je to pěkná podivíne druh chyby, Ale pokud se trefit, jste alespoň máte možnost.

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Lists.asmx, GetListItems a složky

Dělal jsem nějaký výzkum pro někoho dnes kolem list.asmx webové služby poskytované jako součást služby SharePoint 2010 (a starší).  Podařilo se jí přimět položky seznamu v kořenové složce (včetně jména podsložky), Ale nemohl položky do podsložky.  Udělal jsem nějaké rozhlížel na internets a je překvapivě společná otázka.  Přesto, Nemohu získat Dobrá odpověď na jednoduchou otázku, "Pokud vím, do složky, Jak získat položky v této složce?”  Upřímně, Nepokoušela jsem tak tvrdě od obrázku, tento jeden z sama jsem chtěl na chvíli Usměj se.

Toto nastavení, Vytvořil jsem web s názvem "Blogování scénáře" a vlastní seznam s názvem "Vlastní seznam s dílčí složky".  Pak vytvořené složky s názvem:

  • Rok 2005
  • Rok 2006
  • Rok 2007

Přidal jsem pár položek do složky "Rok 2006".  Je to, co vypadá jako:

image

Můj přítel není psaní kódu jazyka C#, ale spíše pomocí Java, SOAP Obálka to, co opravdu potřebuje.  Na to by, Napsal trochu jQuery a pak použije houslista získat skutečné HTTP konverzaci.

Tady je relevantní jQuery (Jsem opsal kód pod Pokud chcete Kopírovat/Vložit):

image

To je první klíč obsahující jak <queryOptions> a <QueryOptions> uzel.  Druhý klíč je, že <Složka> uzel je adresa URL, na kterou má klient přístup.

Může být jiné způsoby, jak si to, Ale to pro mě pracoval, když používá jQuery.

Tady je obálka SOAP pro výše uvedené:

<soapenv:Obálka xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/ENVELOPE/’>                
  <soapenv:Tělo>
    <GetListItems xmlns =’
http://schemas.microsoft.com/SharePoint/SOAP/’>
      <Jméno_konference>Vlastní seznam s podsložky</Jméno_konference>
      <viewFields>  
        <ViewFields>
          <FieldRef jméno =' titul’ />
          <FieldRef jméno ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Složka>
http://demoserver1/blogování Scénáře/seznamy/vlastní seznam s dílčí složky za rok 2006</Složka>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Tělo>
</soapenv:Obálka>

Mnoho příkladů a diskuse kolem toho vedl mě věřit, že vše co potřebuji je <QueryOptions> a zadejte název složky.  Pro mě, Třeba jak lidi uvnitř <queryOptions> stejně jako zadejte úplnou adresu URL pro <Složka> uzel.

Tady je instalace AJAX jQuery:

$(dokument).připraven(funkce() {
       var soapEnv =
           "<soapenv:Obálka xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/ENVELOPE/’> \
               <soapenv:Tělo> \
                    <GetListItems xmlns =’http://schemas.microsoft.com/SharePoint/SOAP/’> \
                       <Jméno_konference>Vlastní seznam s podsložky</Jméno_konference> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef jméno =' titul’ /> \
                              <FieldRef jméno ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Složka>http://demoserver1/Blogging Scénáře/seznamy/vlastní seznam s dílčí složky za rok 2006</Složka> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Tělo> \
           </soapenv:Obálka>";

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Lists.asmx, GetList a "hodnota nemůže být null”

Dnes jsem zjistil, že GetList() Metoda lists.asmx Webová služba musí být volán velmi pečlivě nebo je náchylný na tajemnou "Hodnota nemůže být null" výjimka (a to za předpokladu, že se že můžete dostat přes ještě horší obecnou chybovou zprávu, "Výjimka typu ' Microsoft.SharePoint.SoapServer.SoapServerException’ byla vyvolána.")  Konkrétně, Zjistil jsem, že nemůže poskytnout jakýkoliv druh předpony v metodě GetList.  Následující úryvek jQuery je znázorněna:

image

Pokud tak učiníte, Webová služba reaguje s "Hodnota nemůže být null" jak na to houslista-Pokud protokol HTTP:

<?XML verze = "1.0" kódování = "utf-8"?>
  <mýdlo:Obálka
     xmlns.:mýdlo ="
http://schemas.xmlsoap.org/SOAP/ENVELOPE/"    
     xmlns.:xsi = "
http://www.w3.org/2001/XMLSchema-instance
     xmlns.:XSD ="
http://www.w3.org/2001/XMLSchema">

  <mýdlo:Tělo>
    <mýdlo:Chyba>
      <faultcode>mýdlo:Server</faultcode>
      <řetězcem faultString>
        Výjimka typu ' Microsoft.SharePoint.SoapServer.SoapServerException’ byla vyvolána.
      </řetězcem faultString>
      <Podrobnosti>
        <errorString xmlns ="
http://schemas.microsoft.com/SharePoint/SOAP/">
Hodnota nemůže být null.
        </errorString>
      </Podrobnosti>
    </mýdlo:Chyba>
  </mýdlo:Tělo>
</mýdlo:Obálka>

Samozřejmě, pravděpodobně by přidáte tento prefix "odečtením" na vlastní, Ale některé nástroje jsou náchylné k tomu (jako Eclipse).

Je to o to víc matoucí / frustrující, protože jiné metody tolerovat předpony.  Například, v GetListCollection Metoda nebude vadit, kdyby se byla předponou, i s předponami nesmysly jako "xyzzy":

image

Toto "hodnota nemůže být null" se zdá docela běžné s lists.asmx tak snad to pomůže někomu se v budoucnu.

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Donekonečna vnoření <div> Značky a jQuery

To se jeví jako takové podivíne téma, Nejsem si jistý, že to opravdu stojí blogu, Ale to mě ještě nikdy nevadilo, Tak tady to máme Usměj se

Já pracuji na projektu, kde jsem si nějaké údaje z hledání, balení do XML zprávy a pak že XML je nakonec transformován do HTML pomocí XSLT.  Je o hodně jQuery, jeden bit z nich implementuje funkce procházení.  Když klepnete na kartu (Vážně, a <div>), jQuery vyvolá .hide() a jí Ukažte() na různé značky (načtení úvodní stránku stáhne veškerý obsah, takže v tomto případě neexistují žádné postbacks).

Banda před hodinami, Karta přepínání logiky začali chovat chaoticky a ji ukáže jeden z mé karty.  Nakonec dozvěděl jsem se to dolů k tomu, že aplikace internet explorer (nejméně) Myslel, že <div> značky vnořené daleko, mnohem hlubší než určené.Vývojář nástrojů by ukázal:

-<div id = "Tab1Content">
  -<div>
    -<div>
      -<div id = "Tab2Content">
        -<div>
           …………………………
                   </div>  <— konečně ukazuje byl uzavřen až sem!

Tak, Pokud jsem udělal $("# Tab1Content").Skrýt(), Také by skrýt Tab2 a mohl bych nikdy ukázat Tab2 pokud nechtěl také zobrazit Tab1.  Zkopírovat a vložit kód v aplikaci visual studio a to vše div obložení se ukázal pěkně, stejně jako by měl dělat, Takhle:

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

Porazil mou hlavou proti zdi na chvíli a všiml si, že skutečné HTML kódu vytvářel spoustu prázdná <div> značky, jako:

<tělo>

  <div id = "Tab1Content">

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

  </div>

  <div id = "Tab2Content">

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

  </div>

</tělo>

(Výše uvedené je waaaaaaaaaaaay zjednodušili.  Prázdný div značky jsou naprosto platné. Některé z mého <div> značky byly plné obsahu, Ale mnohem víc.  Přišel jsem k poznání že moje <XSL:pro každý> směrnice byly výstupu zkrácené když značky div xsl:pro každý ne ' najít žádná data.  Donutila komentáře HTML do výstupu, Jak je uvedeno:

image

 

Poté, co jsem to udělal, všechny div zákrytu pěkně a moje karta přepínání začala pracovat.

Jako vždy, Doufám, že to pomůže někdo v nouzi.

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Quick Fix: "Název typu obsahu '$ Resources:ReportServerResources … nesmí obsahovat … speciální znaky”

Strávila jsem nějaký čas vyčistit SharePoint 2010 web a jedním z témat, vyčištění týká zkorumpovaná / nesprávně nainstalován SQL Server zpráva služby vydání.  Problém vznikl, když jeden z mých kolegů se pokusil Uložit web jako šablonu a potom vytvořit vytvořit nový web založený na této šabloně.  Ukládání operace fungovalo, Ale když se snažila vytvořit nový web, SharePoint zobrazena následující chybová zpráva:

Chyba

Název typu obsahu '$ Resources:ReportServerResources,DataSourceContentTypeName;"nesmí obsahovat: \ / : * ? “ # % < > { } | ~ & , dvě po sobě jdoucí období (..), nebo speciální znaky, jako například tabulátor.

A tady je obrazovka:

 

image

Měl se podívat na typy obsahu webu a našel tohle:

image

Tyto typy obsahu jsou jasně nezdravé.

Zdá se, že tento problém tak hodně Internets a nezdá být jediné konsenzus o tom, jak to vyřešit.  Našla jsem šikovný tabulka, která mapované názvy špatný typ obsahu na dobré názvů typu obsahu zde: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  Já je aktualizovat ručně tatínka:

image

(BrightStarr v názvu je pochopitelně nepovinné, Ale to nemůže zranit Usměj se )

To mi vytvořit novou šablonu a nic nezlomil na jiných webech, včetně něco PerformancePoint Server pracovali naprosto odlišné skupiny lidí.  Pak jsem byl schopen vytvořit nový web šablony.  Úspěch!

Nejsem si jistý, že se jedná 100% řešení, Ale to mě a každého, kdo přes to otravné chyby.  Jestli najdu něco nového, Budu účtovat o aktualizaci.  Má nervozita pramení z faktu, že tyto názvy by neměl být v nepořádku v prvé řadě a stanovením zobrazované jméno, Vnitřní název nedotýkám. 

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Jednou z příčin pro "tvůrce této chyby neurčil důvod.”

Dělala jsem spoustu práce s SharePoint search v poslední době a konkrétně třídy KeywordQuery, vlastnosti a metody.

Pokud chcete vrátit výsledky nad rámec obvyklých podezřelých sadu výsledků (naleznete zde), Přidat do kolekce SelectedProperties, stejně jako v:

myKeywordQuery.SelectProperties.Add("xyzzy");

Mnohokrát děkuji a tip klobouk Corey Roth a Tato nesmírně užitečné blogu (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

V mém případě, "xyzzy" není ve skutečnosti spravovanou vlastnost.  Když jsem přidal k SelectedProperties stejně, SharePoint hodil jeden z mé oblíbené někdy runtime výjimky:

"Tvůrce této chyby neurčil důvod."

Obzvlášť líbí velké "R" v důvod.  Zní to pro mě jako.ČISTÝ ekvivalent"Nemám žádné ústa, a musí křičet.”

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Užitečnou: Výchozí výsledky hledání KeywordQuery

Když vyvoláte Execute() Metoda na KeywordQuery, můžete vytvořit ResultTable založené na ResultType.RelevantResults.  Tento fragment kódu, mám na mysli, ilustruje:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

Výsledná tabulka bude mít následující sloupce informací: 

WorkId
Pořadí
Titul
Autor
Velikost
Cesta
Popis
Zápis
Název serveru
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
ContentClass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

Odvozené tento seznam ze serveru SharePoint 2010 prostředí, Enterprise edition.  Doufejme, že se bude hodit k někomu v budoucnosti.

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Jedním z důvodů pro: "Nepodařilo se extrahovat soubor cab v řešení”

Při práci na webové části visual studio projektu dnes, Jsem udělal menší re-org některých souborů k uvedení do složky _layouts jako součást procesu implementace. Konkrétně, Přejmenována js soubor z "TypeAhead.js" na "TypeAhead(staré).JS"  Mám v plánu odstranit, jakmile jeho nástupce "TypeAhead.js" ukáže jako správná.  Vypadalo to jako to:

image

Tento problém se sadou visual studio okamžitě způsobil, když se snažil zavést projekt:

Došlo k chybě v kroku nasazení přidat řešení: Nepodařilo se extrahovat soubor cab v řešení.

Ukazuje se, že by ani dát závorku v názvech souborů.  Jsem odstranil parens a že ten problém vyřešil.

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin