Kategorija Arhiv: SharePoint razvoj

Bambusa koledar stiku s SharePoint povzroča "Nepričakovana napaka"

Danes, Sem delal v okolju, ki uporablja bambusa koledar spletni gradnik za nekatere boljše sodelovanje. To standardno srednje/majhna kmetija z dvema uravnavati obremenitve WFEs, "aplikacijski strežnik" za indeksiranje in InfoPath in razvrstilni SQL nazaj konec.

Odjemalec nameščen nekaj nezgoda regres software na eno v WFEs in to povzročilo zdrobljen WFE za določeno mesto v zbirki mest. Kadar uravnavanja obremenitve opozoril na prizadeti WFE in mesta, uporabnik videl večinoma prazen bel zaslon s stavkom "Nepričakovana napaka". Nobenih drugih informacij, je pokazala, samo ta stavek.

Prosili so me, da pogled na to. Preprosto ponoviti problem in nato doda v ?vsebina = 1 na konec URL. To je, kako sem se naučila, so bili z uporabo spletnega gradnika bambusa. Sem šel nazaj na stran in zdaj, nenadoma, je pokazala, me lepo urejeno zmota vest:

image

Ne vem, kaj se dogaja ali kaj sem storil zaslužiti nadzorovano zmota vest razpoložiti razen slepič je ?vsebina = 1 košček niza poizvedbe.

To je verjetno zelo redko rob primera, vendar če vi zaslužiti to vest, »Nepričakovana napaka« umreti spredaj ter povečati ?vsebina = 1 niz poizvedbe in videli, če to vodi.

</namen>

Naročite se na moj blog.

Sledite mi na Cvrkutati na http://www.twitter.com/pagalvin

Technorati Tags: ,

Z uporabo reflektor na Microsoft.SharePoint.dll

Redgate .NET Reflector Michael Blumenthal je pripravljena za članek o opozorila in ogledov ("Kateri pogledi uporabite, ko ustvarite opozorilo ?"), ki je zanimiv z lastnimi močmi. Vendar, Sem bil še bolj zanima, kako hodi metodično skozi proces z uporabo Redgate's .NET reflektor. Korak za korakom, je prikazano, kako uporabljati to orodje stezi navzdol kako SharePoint določa, ali naj bo pogled na seznam »subscribable" zaradi pomanjkanja boljša beseda (he explains this much better than I do 🙂 ).

Na tej točki v SharePoint era, bi skoraj moral biti gluh in slep, da ne slišali ali brali o tem orodjem. To je napreden stvari in moj lastni občutek je, da je v mnogih pogledih orodje skrajnem. Vendar, Če mislite, da morate to vendar res ne vem kako, Michael je napisati-up izgleda veliko tutorial o tej temi.

</namen>

Naročite se na moj blog.

Sledite mi na Cvrkutati na http://www.twitter.com/pagalvin

Razvrščanje elementov koledarja v pogledu koledarja

Jaz sem z uporabo koledar za sledenje panelih na določen dan. Imam dve zasedanji: zjutraj in popoldne. Želim ustvariti pogled, ki prikazuje zjutraj seje samo našteti po abecednem redu preko ID seje. To je malo težavno doseči (razen če sem zamudil nekaj resnično očitno).

Lahko preprosto ustvarite Filtrirani pogled prikazuje samo tisti dan dogodkov. Koledar prikaže vse tiste dogodke in če so vsi sprejeti mesto na isto uro, našteva jih vzporedno, v režo uro. to je odlično. Rafiniran del je, da, privzeto, želi jih navede v obliki ID. Tako, če dodam "Session 02" in potem "Session 01" koledar, da jim pokaže v tem vrstnem redu (i.e, Sejo 02 in potem seje 01). Na seznam, da ID seje, Sem mislil, da poskusite te stvari:

  1. Nastavite pogled z spletni uporabniški vmesnik. Ne sreča. Ni možnosti da bi razvrstili elemente na ta način.

    Saj to ni delo, Jaz sem zdaj v upanju, da je poizvedba CAML nekje noter, da bo mi dovolite, da preglasijo neke. CQWP omogoča mi, da nekako spremeniti, morda koledar bo tudi?

  2. Urejanje spletnega gradnika, Poglej za "izvoz" Funkcija in … BZZZT! Ne morete izvoziti svoje XML. Ni ne izvoznih možnosti.

    Še vedno me imajo upanje, da najdem in spremeniti nekaj CAML poizvedbe. Ker ne morete izvoziti spletnega gradnika, To pušča SharePoint Designer.

  3. Dodajte spletni gradnik koledar z mestom prodajelec peska in odprite to stran s programom SharePoint Designer. Gledam na oznake za spletnih gradnikov in sem našel kar sem iskal. To je kodirana norost, vendar je tam: "<ListViewXml …. >kodirano norost</ListViewXml>". Posebej, tam je ta dragulj:

<Poizvedbe>
<Kjer>
<DateRangesOverlap>
<FieldRef ime = "EventDate" />
<FieldRef ime = "Datum_konca" />
<FieldRef ime = "RecurrenceID" />
<Vrednost vrste »DateTime« =>
<Mesec />
</Vrednost>
</DateRangesOverlap>
</Kjer>
<OrderBy><FieldRef ime = "Session_x0020_ID" /></OrderBy>
</Poizvedbe>

(Jaz dešifrirati v &lt;osebe in &je gt in jih razdeli v več vrstic za večje preglednosti).

Dodaj na <OrderBy> bit in zdaj razvrsti po ID seje, ne notranje ID elementa na seznamu.

VELIKANSKI nasvet o’ klobuk v Becky Isserman za njen komentar na Isha Sagi blog post: http://www.sharepoint-tips.com/2008/07/caml-sorting-by-file-name.html. Jaz ne bi dal na <OrderBy> pravem mestu brez njen komentar.

Upam, da napisati to do bolj jasno s zaslon strel kmalu, vendar v primeru, da jaz nikoli ne, vsaj nisem toliko.

</namen>

Technorati Tags: , , ,

Funkcij SharePoint & Rešitve upravljanja — Ne pozabite, U v CRUD (ali D za to zadevo)

Smo skupaj preživeli veliko časa za razmišljanje o rešitev SharePoint — kako tvoriti jih, katero orodje bi uporabili, Kaj se zgodi, če ne za uvajanje, posli razporejevalnika, obsege, itd. Smo porabili toliko časa za razmišljanje o vnaprejšnje bitov, ki je enostavno pozabiti, da se moramo umakniti jih tudi. Navijanju rešitve je verjetno bolj težko, z vidika konceptualno zasnovo, kot jih uvajanje. Uvajanje je v bistvu afero kuharska knjiga. Običajno, namestite funkcijo, morda imajo funkcijo sprejemnik, vstavite nekaj podatkov v seznam, take stvari. Vendar, navijanju je potencialno bolj zapletene.

Na dano rešitev lahko ustvarite artefaktov kot ti:

  • Vrsta vsebine
  • Seznam opredelitev
  • Definicije mesta
  • Podatkov v seznamu
  • Tudi sprejemniki
  • InfoPathovi obrazci

Naštevali.

Čeprav je očitno pomembno za oblikovanje rešitev instantiates teh artefaktov pravilno, To je prav tako pomembna v imeti koga za kaj modernizirati ter izbrisati primerih. Če vaša rešitev ustvari nov seznam in dopolni seznam s podatki, Kaj se zgodi, ko je rešitev je preklicana? V nekaterih primerih, črtati s seznama. V drugih primerih, To je levi nedotaknjen za zgodovinske namene. Vaše poslovne zahteve, ki vas bo vodil v pravo odločitev.

Za pomoč pri tem, Ustvari matriko, ki prikaže vsak artefakt, vaša rešitev je uvedena v SharePoint. Seznam tri stolpce na artefakt, ena za ustvarjanje, posodobitev in brisanja. Za vsak primer, določitev pravilne izid za to operacijo.

Tovrstna analiza je seveda najbolje narediti, preden rešitev je vedno uveden v SharePointovi gruči. Vendar, kot kajenje, To je nikoli prepozno začeti početje stvari pravilno. Ustvariti te matrike in razvoj načrta za reševanje manjka posodabljanju/brisanju scenarijev. To je lahko težko problem rešiti, ampak vsaj vam bom dal okvir okrog problem.

</namen>

Naročite se na moj blog.

Sledite mi na Cvrkutati na http://www.twitter.com/pagalvin

Technorati Tags:

Hitro: Spletne storitve to interakcijo s SharePointom, InvalidOperationException

Milijon leti, Sem pomagal razviti spletna storitev, ki je bil priklican preko dejanje po meri za potek dela SharePoint Designer. Ta teden, stranka želela preseliti v proizvodnji (končno!) tako smo naredili.

Dejanje po meri obdelan lep, Spletna storitev, ki jo uveljavlja ni, nam daje to napako:

System.InvalidOperationException: To operacijo je mogoče izvesti le v računalniku, ki je pridružen gruči uporabnikov, ki imajo dovoljenje v strežniku SQL za branje konfiguracijske zbirke podatkov. Ta strežnik povezati z gručo, Uporabi SharePointove izdelke in tehnologije čarovnika za konfiguracijo, nahaja v meniju Start v Skrbniška orodja.
na Microsoft.SharePoint.Administration.SPWebApplication.Lookup(Uri requestUri)

Izkazalo se je, da sem pozabil dodati skupine SharePoint v IIS storitev. Enkrat sem, da, to obdelan lep.

Ta MSDN forum objavljate mi je dal namig, sem potreboval: http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/2c97c004-7118-4e06-a62c-b2b0ac07ac99

</namen>

Naročite se na moj blog.

Sledite mi na Cvrkutati: http://twitter.com/pagalvin

Technorati Tags:

Hitro in enostavno: Get SPFolder SPItemList

Vedno znova naletim na težave in Google nikoli ne zdi, da razumejo, kaj želim storiti, tako mislil, da bi napisali to.

Sem delal veliko dogodkov sprejemnik napak v zadnjem tednu ali dveh. ER je opredeljena proti knjižnico dokumentov. Posamezne elemente v knjižnici dokumentov so tesno povezane z njihove nadrejene mape. Tako, Vedno sem pridobivanje mapo elementa za različne manipulacije. Med iskanjem napak, Sem rabil v modernizirati metapodatkov v mapo za določen predmet katerih ID-ja, vem.

Tukaj je malo uporabi konzole (namenjena strežniku v gruči) to traja dva argumenta: ID elementa in vrednost dodeliti polje, "Stanje odobritve". Težko kod veliko stvari in je brez napake preverjanja.

Šifra poišče mesto nespremenljivo zapisan, dobi nespremenljivo zapisan knjižnice in nato poišče navedeno artikla. Nato ugotovi nadrejene mape te postavke in dodeli vrednost stanja.

Ključno spoznanje tukaj zame je, da SPItem ne dobili dostop do mape. Vi potreba rabiti SPListItem.File.

Če kdorkoli ljubkovati ponujajo kritiko ali boljši način, da dobite mapo element, prosim, pustite komentar.

<zbornik>
z uporabo Sistem;
z uporabo System.Collections.Generic;
z uporabo System.Text;
z uporabo Microsoft.SharePoint;
z uporabo System.Collections;

imenski prostor Conchango
{
    /// <povzetek>
 /// </povzetek>
 razred ManualFolderUpdate
    {
        statična nična Glavni(niz[] args)
        {
            niz MSH = "ManualFolderUpdate (v1.0): "; // MSH = "glava sporočila"

 Konzole.WriteLine(MSH + »Zagon.  Sem zadnje spremembe na 04/08/08.");

            niz URL = http://localhost/xyzzy;

            z uporabo (»SPSite « oSPSite = nove »SPSite «(URL))
            {

                z uporabo (SPWeb oSPWeb = oSPSite.OpenWeb())
                {
                    SPList.Update() docLib = oSPWeb.Lists["Dokumenti"];

                    Konzole.WriteLine(MSH + "Dobil knjižnico dokumentov.");

                    Konzole.WriteLine(MSH + "Doc lib število elementov: [" + docLib.ItemCount + "].");

                    int ID-ja mape = 0;
                    niz NewStatus = "xyzzy";

                    ID-ja mape = sistem.Pretvori.ToInt32(args[0].ToString());
                    Konzole.WriteLine(»Iskanje mape za element: [" + ID-ja mape + "].");

                    SPListItem Li = docLib.GetItemById(ID-ja mape);

                    »SPFolder « thisItemFolder = li.File.ParentFolder;

                    Konzole.WriteLine(MSH + "Dobil nadrejeno mapo.");

                    NewStatus = args[1].ToString();
                    Konzole.WriteLine("Stanje različice izbrana nastavitev [" + NewStatus + "].");

                    Konzole.WriteLine("Pritisnite vračanja k posodobitev ali CTRL-C za prekinitev.");

                    Konzole.ReadLine();

                    thisItemFolder.Item["Stanje odobritve"] = NewStatus;
                    thisItemFolder.Item.Update();

                    Konzole.WriteLine(MSH + "Dokončal posodabljanje mapo.  Izhodu.");

                } // z uporabo SPWeb

            } // z uporabo SPSite

 Konzole.WriteLine(MSH + "Končal.");

        } // Glavni

    } // »foldersync« razreda
} // imenski prostor
</zbornik>

</namen>

Naročite se na moj blog.

Technorati Tags:

Skrivanje dejanja po meri v SharePoint

Nekaj mesecev nazaj, med delom na projektu za stranko, Sem ustvaril funkcija. Med drugim, Ta funkcija opredeljena dejanja po meri (Ti pojavi pod nastavitve mesta). Edini namen za to dejanje po meri je bil dokazati da aktivacija funkcije delal po pričakovanjih. V bistvu, Sem rabil kot surovo obliko za iskanje napak.

Veliko moje zadrege, to artefakt za iskanje napak je svojo pot od dev UAT in proizvodnjo preden nekdo dobil okoli prosi, "kaj je to povezavo xyzzy?"

Do sedaj, smo v proizvodnjo in res ne želite odstraniti funkcijo, pritrditi elements.xml in nato zopet.

Todd Bleaker poudaril enostaven način ravnati. Po njegovih besedah:

"CustomActions ne kopirajo v zbirko podatkov, so glasi neposredno iz datoteke Elements.xml in kopirati v uporabi stanje v runtime. Tako, ni treba, da izkljuèite, uninstall, zopet, in znova Aktivirajte funkcijo umakniti na CustomAction. Samo odstranite iz Elements.xml datoteke in recycle skupine(s) opravljena. Naslednjič, ko funkcija je v obsegu, v CustomAction ne bo več videti."

Jaz pripadnik svoj navodila in, seveda, delajo.

V mojem primeru, To je oddelek ravni namestitev s samo eno WFE. Če se znajdete s tem problemom v prihodnosti in z več WFE, Verjamem, da boste morali narediti spremembo v vsakem.

</namen>

Naročite se na moj blog.

Technorati Tags: ,

Hitro: Dostop do SharePointovega mesta vrže [HttpException (0x 80004005): Zahtevo je potekla.]

Eden od mojih kolegov razvijalec delala na projektu ta teden in zašel v težave časovne omejitve, medtem ko delate na gradnjo nekaj noro spletnega gradnika. Njegov spletni gradnik je bil lep, ampak "nenadoma" nepovezanih mesta postal zelo počasi in pogosto potekla s to napako:

[HttpException (0x 80004005): Zahtevo je potekla.]

Prijavljeni in videl, da je več drugih spletnih strani so bili čisto v redu. I sum, da je bilo nekaj skritih spletnih gradnikov na strani in uporabo v zaupljiv ?vsebina = 1 debug tehnika, V bistvu nisem našel 11 spletne gradnike na strani, samo dve, ki so bili vidni. Še bolje (iz let's-hope-I-find-something-ugly-here-that-I-can-fix vidika), tri od teh zaprti spletni gradniki je ime "Napaka".

Jaz izbrisati teh spletnih gradnikov (sama je presenetljivo dolgo) in da je problem rešen. For today 🙂

</namen>

Naročite se na moj blog.

Technorati Tags:

Sklicujejo SSRS spletnih storitev od WSS / MAH v FBA okolje

Smo morali sklicevati "CreateSubscription" metoda na SSRS spletna storitev, ki gostuje na FBA uspel mah okolja po meri spletnega gradnika. Smo kept pridobivanje različic:

  • 401: Ne dovoli
  • Predmet preselil

"Predmet preselil" sporočilo je bilo najbolj zanimivo, ker je rekel, da "predmet" (naše storitve SSRS) "preselil" za login.aspx. To jasno pomenilo, smo imeli neke vrste preverjanja pristnosti problem.

Sem sčasoma spoznal, da sem imel knjižni znak blog vpis z Robert Garret, da je opisano, kako splošne namene WSS/MOSS web storitve živijo znotraj FBA okolje. Upoštevajte, da sem ne more povezati neposredno na članek (kot od 06/09/08) ker želi za preverjanje pristnosti. I zagotavljajo povezavo pripelje do je "vseh objav" pogled in si lahko poiščete posebne članek z iskanjem "Dostopanje MOSS Web Services uporabljate preverjanje pristnosti obrazcev temelji".

Tukaj je koda, ki je delal za nas:

ReportingService2006 rs = NULL; 
// Preverjanje pristnosti Preverjanje pristnosti auth = nove Preverjanje pristnosti(); 
auth.URL = "http://URL/_vti_bin/Authentication.asmx";
auth.CookieContainer =
nove CookieContainer();
LoginResult rezultat = auth.Prijava("userid", "geslo");
Če (rezultat.Koda napake == LoginErrorCode.NoError) 
{
// Ni napaka, tako dobili Piškotki.
CookieCollection piškotke = auth.CookieContainer.GetCookies(nove Uri(auth.URL));
Piškotek authCookie = piškotke[rezultat.CookieName];
RS =
nove ReportingService2006();
RS.URL =
"http://Server/_vti_bin/ReportServer/ReportService2006.asmx";
RS.CookieContainer =
nove CookieContainer();
RS.CookieContainer.Add(authCookie);
}
poskusite
{
  RS.CreateSubscription(poročilo, extSettings, desc, vrsta dogodka, matchData, parameters1);
}
ulova (Izjema ex)
{
  Console.WriteLine(ex.Message.ToString());
}

Razlagam stvari, da delo takole:

  • Naš spletni gradnik mora klicne storitev za preverjanje pristnosti in reči, "Hej, Tony, mi je!".
  • Preverjanje pristnosti storitev odgovorov rek, "Hej, Vem, da. Kako so otroci? Tukaj je žeton."
  • Pravimo do SSRS storitev in reči, "Tony mi je poslal, Tukaj je žeton."

</namen>

Naročite se na moj blog.

Hitro in preprosto: Določba spletne strani z uporabo SharePoint predmetnega modela v C#

Si se potrudil preiskava zakaj malo košček kode, da bi pokazali, kako lahko ustvarite nov SPWeb v zbirki mest. Niso ugotovili, da so hitro ali preprosto kot sem pričakoval, zato sem mislil, jaz bi slap skupaj malo vstop na temo.

Ta koda ustvari novo stran Wiki:

 »SPSite « siteCollection;

    siteCollection = nove »SPSite «("http://conchang-o9l8qi");

    SPWeb w = siteCollection.OpenWeb();

    w.Webs.Add("xyzzy", "xyzzy naslov",
        xyzzy opis"", 1033, SPWebTemplate.WebTemplateWIKI, FALSE, FALSE);

Mojo začetno iskanja ni uspela, ker sem iskal stavki kot "določba spletne strani z uporabo sharepoint predmetnega modela" in podobno.

Če ste Išči za "Webs.Add()", boste našli številne zelo koristne blog vnosov, MSDN člankov in dokumentacija kompleta SDK, ki gredo v globino na to temo. Jaz vsekakor priporočam Ta stran.

</namen>

Naročite se na moj blog.

Technorati Tags: