Mjesečni arhiv: Svibanj 2011

PerformancePoint i Greška 33494

Jedan od mojih klijenata pozvao je danas kada je njihov PerformancePoint okoliš (u sustavu SharePoint 2010) pokvario.  Jedan od app poslužitelja u farmi je ponestaje prostora na disku.  Dok adresiranje da, deinstalira klijent "previše" i PP stvari prestali funkcioniranja.  Različiti dijelovi web će pokazati "Pojavila se neočekivana pogreška. Pogreška 33494. Dodatne informacije su prijavljeni za Vaš administrator ":

image

Pogledao sam gore pogrešku i ne naći ništa specifične za "Error 33494", ali to MSDN forumi knjiženja je korisno: http://social.technet.microsoft.com/forums/en-us/sharepoint2010setup/thread/E1FE189D-7F89-455D-A98B-C1A12D8626AB

Otkrio sam ADOMD.NET ovdje kao komponenta u sustavu SQL Server 2008 Feature Pack: http://www.microsoft.com/downloads/en/details.aspx?FamilyId=228DE03F-3B5A-428A-923F-58A033D316E1&displaylang=en

image

(kliknite za veću sliku)

Mogu preuzeti i instalirati da se i to popraviti sve.

Mislim da je ovo prilično otkačen vrsta pogreške, ali ako ga je pogodio, vi barem imate opciju.

</kraj>

Pretplatite se na moj blog.

Slijedite me na Twitter-u http://www.twitter.com/pagalvin

Lists.asmx, GetListItems i mape

Sam bio događaj neki istraživanje za nekoga danas oko uslugu list.asmx web predviđeno kao dio sustava SharePoint 2010 (i ranije).  Ona je bila u mogućnosti da biste dobili stavke popisa na korijensku mapu (uključujući imena pod-mape), , ali nije mogao dobiti stavke u pod-mape.  Ja sam neki obličje okolo na internets i to je iznenađujuće zajedničko pitanje.  Još, Nisam mogao dobiti dobar odgovor na jednostavno pitanje, "Ako znam mapu, kako mogu dobiti stavke u mapi?"  Da budem iskren, Nisam pokušati sve što je teško jer sam želio shvatiti ovaj na moj posjedovati neko vrijeme Osmijeh.

Da biste postavili ovo gore, I stvorio je mjesto pod nazivom "Blogovi" Scenariji i prilagođeni popis pod nazivom "Custom Popis s podmape".  Tada sam stvorio mape pod nazivom:

  • Godina 2005
  • Godina 2006
  • Godina 2007

Dodao sam nekoliko stavki u mapu "Godina 2006".  To je ono što izgleda kao:

image

Moj prijatelj ne piše C # koda nego koristeći Java, tako da je SOAP omotnici je ono što je stvarno potrebno.  Da biste dobili da, Napisao sam malo jQuery i zatim koristiti Fiddler da biste dobili stvarni HTTP razgovor.

Evo relevantne jQuery (Ja kopirati kod ispod želite li copy / paste):

image

Oni su prvi ključ je da su oba <queryOptions> i <QueryOptions> čvor.  Drugi ključ je da <Mapa> čvor je URL koji klijent ima pristup.

Postoji svibanj biti drugih načina da se to, ali to je radio i za mene kada se koristi jQuery.

Ovdje je SOAP omotnice za gore:

<soapenv:Omotnica xmlns:soapenv =’http://schemas.xmlsoap.org / sapun / kuverta /’>                
  <soapenv:Tijelo>
    <GetListItems xmlns =’
http://schemas.microsoft.com / SharePoint / sapun /’>
      <listname>Prilagođeni popis s podmape</listname>
      <viewFields>  
        <ViewFields>
          <FieldRef Ime = 'Naslov’ />
          <FieldRef Ime = 'EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Mapa>
http://demoserver1/Blogging Scenariji / popisi / Custom List sa podmape / godine 2006</Mapa>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Tijelo>
</soapenv:Omotnica>

Puno primjera i diskusiju oko to je dovelo me da vjerujem da je sve što mi treba je <QueryOptions> i odredite naziv mape.  Za mene je, Trebam oba zamotajte ga u <queryOptions> kao i navesti u potpunosti kvalificirani za URL <Mapa> čvor.

Evo jQuery AJAX postava:

$(dokument).spreman(funkcija() {
       je soapEnv =
           "<soapenv:Omotnica xmlns:soapenv =’http://schemas.xmlsoap.org / sapun / kuverta /’> \
               <soapenv:Tijelo> \
                    <GetListItems xmlns =’http://schemas.microsoft.com / SharePoint / sapun /’> \
                       <listname>Prilagođeni popis s podmape</listname> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef Ime = 'Naslov’ /> \
                              <FieldRef Ime = 'EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Mapa>http://demoserver1/Blogging Scenariji / popisi / Custom List sa podmape / godine 2006</Mapa> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Tijelo> \
           </soapenv:Omotnica>";

</kraj>

Pretplatite se na moj blog.

Slijedite me na Twitter-u http://www.twitter.com/pagalvin

Lists.asmx, GetList i "Vrijednost ne može biti null”

Otkrio sam danas da GetList() metoda u lists.asmx web servis mora se zvati vrlo pažljivo ili je sklona baciti misteriozni "vrijednost ne može biti nula" iznimka (i da je pod pretpostavkom možete dobiti prošlosti još gore generički pogrešci, “Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ izbačena. ")  Posebno, Otkrio sam da ne mogu dati bilo kakve prefiksom na GetList metodom.  Sljedeći isječak jQuery oslikava:

image

Ako to učinite, web servis odgovara s "Vrijednost ne može biti null" po ovom violinista-uvjetom HTTP transkript:

<?xml version = "1,0" encoding="utf-8"?>
  <sapun:Omotnica
     xmlns:sapun ="
http://schemas.xmlsoap.org / sapun / kuverta /"    
     xmlns:Rebel = "
http://www.w3.org/2001/XMLSchema-instance"
     xmlns:XSD ="
http://www.w3.org/2001/XMLSchema">

  <sapun:Tijelo>
    <sapun:Greška>
      <faultcode>sapun:Server</faultcode>
      <faultstring>
        Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ bačena.
      </faultstring>
      <detalj>
        <ErrorString xmlns ="
http://schemas.microsoft.com / SharePoint / sapun /">
Vrijednost ne može biti nula.
        </ErrorString>
      </detalj>
    </sapun:Greška>
  </sapun:Tijelo>
</sapun:Omotnica>

Naravno, vjerojatno ne bi dodali da je "S0" prefiks na vlastite, No, neki alati su skloni to učiniti (kao što je Eclipse).

To je sve više zbunjuje / frustrirajuće, jer druge metode tolerirati prefiksa.  Na primjer, the GetListCollection Metoda ne smeta ako je bio postavljen ispred, čak i sa besmislenim prefiksima poput "xyzzy":

image

Ovaj "Vrijednost ne može biti null" Čini se prilično čest kod lists.asmx pa se nadam da će to pomoći nekome u budućnosti.

</kraj>

Pretplatite se na moj blog.

Slijedite me na Twitter-u http://www.twitter.com/pagalvin

Beskrajno Gniježđenje <div> Oznake i Jquery

Ovo se čini kao takvog otkačen temu, Nisam siguran da je stvarno vrijedno bloganje o, ali to nikada me zaustavio prije, pa ovdje mi ići Osmijeh

Radim na projektu gdje sam povlačenjem neke podatke iz pretraživanja, to pakiranje se u XML poruke, a zatim da je XML konačnici se pretvara u HTML-u preko XSLT.  Postoji puno jQuery uključeni, jedan malo koji implementira neke tabbing funkcionalnost.  Kad kliknete na kartici (stvarno, a <div>), jQuery zaziva. skrivanje() a. serija() na raznim divs (početna stranica učitavanje preuzima sav sadržaj tako da ne postoje postbacks u ovom slučaju).

Gomila sati prije, Kartica prebacivanje logika počeo ponašati neizvjesno, a to ne bi pokazati jedan od mojih karticama.  I u konačnici to trag na činjenicu da Internet Explorer (barem) Mislio da je <div> tags uklopljeni sada, daleko dublje od intended.The developer alatnoj traci će se prikazati:

-<div id = "Tab1Content">
  -<div>
    -<div>
      -<div id = "Tab2Content">
        -<div>
           ..............................
                   </div>  <-Napokon pokazuje da je zatvorena skroz ovdje dolje!

Tako, ako jesam $("# Tab1Content").sakriti(), Također bih sakriti Tab2 a ja nikad ne bi mogla pokazati Tab2 ako nisam također pokazuju TAB1.  Ja kopirati i zalijepiti kôd se u Visual Studio, a to su pokazali sve DIV-a sluznice se lijepo, baš kao što su trebali raditi, izgleda ovako:

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

Pobijedio sam glavom o zid za vrijeme i primijetio da je u aktualnom HTML koda je generiranje puno prazna <div> tags, kao:

<tijelo>

  <div id = "Tab1Content">

    <div id = "ROW1" />
    <div id = "ROW2" />

  </div>

  <div id = "Tab2Content">

    <div id = "ROW1" />
    <div id = "ROW2" />

  </div>

</tijelo>

(Gore je waaaaaaaaaaaay pojednostavni.  Prazne div oznake su totalno vrijede. Neki od mojih <div> tags bili puni sadržaj, , ali mnogo više nije bilo.  Došao sam do spoznaje da je moja <XSL:za-svakog> Smjernice su emitiranjem na kratki upitnik div oznake kada XSL:za-jedni nije 'naći nikakve podatke.  Sam prisiljen HTML komentar na izlazu, kao što je prikazano:

image

 

Nakon što sam to učinio, Svi div je postrojilo se lijepo i moja kartica prebacivanje počeo raditi.

Kao i uvijek, Nadam se da ovo pomaže netko u slučaju krajnje nužde.

</kraj>

Pretplatite se na moj blog.

Slijedite me na Twitter-u http://www.twitter.com/pagalvin

Quick Fix: "Naziv vrste sadržaja '$ resursi:ReportServerResources … ne smije sadržavati … posebni znakovi”

Ja sam proveo neko vrijeme čišćenja SharePoint 2010 Mjesto i jedan od čišćenja pitanja odnosi se na oštećena / ispravno instaliran SQL Server Izvješće Usluge problem.  Problem je nastao kada je jedan od mojih kolega pokušao spasiti mjesto kao predložak, a zatim stvoriti stvoriti novo web temeljen na tom predlošku.  Pohranjivanju radio u redu, ali kad je pokušala stvoriti novu stranicu, SharePoint prikazuje sljedeću poruku o pogrešci:

Pogreška

Imenom vrsta sadržaja '$ resursi:ReportServerResources,DataSourceContentTypeName;'Ne može sadržavati: \ / : * ? " # % < > { } | ~ & , dva uzastopna razdoblja (..), ili posebnih znakova kao što su kartice.

Evo screen cap:

 

image

Imao sam pogled na vrste sadržaja u mjestu i pronašao ovu:

image

Te vrste sadržaja jasno su nezdravi.

Ovo pitanje se čini da se puno na internets i tamo se ne čini da se jedan konsenzus o tome kako ga riješiti.  Našao sam zgodan tablicu koja zacrtao loše imena vrste sadržaja dobrih imena vrsta sadržaja ovdje: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  Ja ih ručno ažurirati thusly:

image

(BrightStarr u ime očito izborno, ali to ne može škoditi Osmijeh )

To mi je omogućilo stvaranje novog predloška i ne razbiti ništa na drugim mjestima, uključujući i neke stvari koje PerformancePoint Server potpuno drugačija skupina ljudi radili.  Bio sam tada u mogućnosti stvoriti novu stranicu na predlošku.  Uspjeh!

Nisam siguran da je to 100% otopina, ali je dobio mene i svi koji su uključeni prošlosti ovog dosadne pogreške.  Ako ne mogu naći ništa novo, Ja ću objaviti ažuriranje.  Moja nervoza proizlazi iz činjenice da se ta imena ne bi trebao biti u redu na prvo mjesto i ne mijenjajući ime za prikaz, Ja ne dira unutarnju ime. 

</kraj>

Pretplatite se na moj blog.

Slijedite me na Twitter-u http://www.twitter.com/pagalvin

Jedan razlog za "kreator ovog kvara nije precizirao s razlogom.”

Ive 'bio događaj puno rada sa SharePoint potrazi u zadnje vrijeme, a posebno KeywordQuery klase, svojstva i metode.

Ako želite postaviti rezultat vratiti rezultate iznad i izvan uobičajenih osumnjičenih (pogledajte ovdje), ga dodati SelectedProperties zbirke, kao u:

myKeywordQuery.SelectProperties.Add("Xyzzy");

Puno hvala i vrh kapu Corey Roth i to iznimno korisni blog post (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

U mom slučaju, "Xyzzy" nije zapravo uspio imovine.  Kad sam ga dodati SelectedProperties ionako, SharePoint je bacio jedan od mojih najdražih ikad runtime iznimke:

"Tvorac ovog kvara nije precizirao s razlogom."

Posebno mi se sviđa kapitala "r" u razumu.  To mi zvuči kao ekvivalenta. NET "Nemam usta, i moram vrištati."

</kraj>

Pretplatite se na moj blog.

Slijedite me na Twitter-u http://www.twitter.com/pagalvin

Praktična referenca: Default Rezultati KeywordQuery Traži

Kada pozvati izvršiti() Način na KeywordQuery, možete stvoriti ResultTable na temelju ResultType.RelevantResults.  Ovaj isječak koda prikazuje ono što mislim:

ResultTableCollection resultsTableCollection = myKeywordQuery.Execute();

ResultTable searchResultsTable = resultsTableCollection[ResultType.RelevantResults];

Rezultiralo stol će imati sljedeće stupce informacija: 

WorkId
Poredak
Naslov
Autor
Veličina
Put
Opis
Pisati
Sitename
CollapsingStatus
HitHighlightedSummary
HitHighlightedProperties
ContentClass
IsDocument
PictureThumbnailURL
ServerRedirectedURL

Ja izvedeni ovaj popis iz SharePoint 2010 okolina, Enterprise Edition.  Nadam se da će biti pri ruci da netko u budućnosti.

</kraj>

Pretplatite se na moj blog.

Slijedite me na Twitter-u http://www.twitter.com/pagalvin

Jedan od razloga za: "Nisam uspio izvući cab datoteka u otopini”

Dok je radio na Visual Studio web-dijela projekta danas, Ja sam manje re-org nekih datoteka koje treba staviti u mapu _layouts kao dio procesa implementacije. Posebno, Preimenovao sam je. JS datoteku iz "TypeAhead.js" do "TypeAhead(star).js "  Planiram ga ukloniti čim njegov nasljednik "TypeAhead.js" pokazuje ispravan.  Izgledalo je kao što je ovaj:

image

To je odmah izazvalo problem s Visual Studio, kada sam pokušao implementirati projekt:

Error occurred in deployment step ‘Add Solution’: Nisam uspio izvući cab datoteka u otopini.

Ispada da ne biste trebali staviti zagrade u imenima datoteka.  Uklonio sam parens i da riješio problem.

</kraj>

Pretplatite se na moj blog.

Slijedite me na Twitter-u http://www.twitter.com/pagalvin