Kategorija Archives: SharePoint plėtros

Bambuko kalendorius bendrauja su SharePoint sukelia "įvyko netikėta klaida"

Šiandien, I been darbo aplinkoje, kuri naudoja bambuko kalendorius žiniatinklio dalį kai pagerinus bendradarbiavimą. Tai standartinės vidutinės/mažas ūkių su dviem Balansavimas parsisiųsti WFEs, "application server" indeksavimui ir InfoPath ir Klasterinė SQL atgal pabaigos.

Klientas įdiegtas kai nelaimės atkūrimo programinės įrangos į vieną iš į WFEs ir kuri atsirado skaldytų WFE tam tikros svetainės svetainių rinkinio. Kiekvieną kartą, kai apkrovos balansavimo nurodė įtakos WFE ir toje vietoje, naudotojų matė daugiausia tuščias baltas ekranas su sakiniu "įvyko netikėta klaida". Jokios kitos informacijos parodė, tik kad sakinys.

Jie paprašė mane pažvelgti į ją. Aš lengvai atkurti problemą ir tada įtraukti į ?turinys = 1 URL pabaigoje. Tai kaip supratau, jie naudojo bambuko puslapio dalis. Aš grįžau į puslapį ir dabar, staiga, ji parodė man gražus tvarkingai klaidos pranešimą:

image

Aš nežinau, kas vyksta ar ką aš gauti kontroliuojama klaidos pranešimą, kad parodyti ne papildymo ir ?turinys = 1 bito užklausos eilutės.

Tai tikriausiai labai retas kraštas bet jei jūs gaunate šį pranešimą, "Įvyko netikėta klaida" eiti į priekį ir pridėti ?turinys = 1 į užklausos eilutę ir pamatyti, kur tai veda.

</pabaigos>

Prenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

Technorati Tags: ,

Naudojant reflektoriaus Microsoft.SharePoint.dll

Redgate .NET Reflector Michael Blumenthal supakuoti, straipsnis apie įspėjimus ir peržiūros ("Kokie rodiniai galite naudoti kurdami įspėjimą ?"), kuri yra įdomi savo jėgomis. Tačiau, Man buvo dar labiau įdomu pamatyti, kaip jis metodiškai vaikšto per procesą naudojant Redgate's .NET atšvaitas. Žingsnis po žingsnio, jis rodo, kaip naudoti šį įrankį susekti kaip SharePoint nustato, ar vaizdas į sąrašą turėtų būti "subscribable" trūksta geresnio žodžio (he explains this much better than I do 🙂 ).

Šiuo metu SharePoint ERA, jūs beveik turi būti kurčias ir aklas nebuvo išgirsti ar skaityti apie naudojant ši priemonė. Ji Išplėstinė stuff ir savo prasme, kad ji yra įvairiais būdais kraštutinė priemonė. Tačiau, Jei manote, kad jums reikia bet tikrai nežino, kaip, Mykolo rašyti atrodo puiki pamoka šiuo klausimu.

</pabaigos>

Prenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

Rūšiavimo kalendoriaus elementus rodinyje kalendorius

Aš naudoju kalendorių stebėti diskusijų forumų tam tikrą dieną. Turiu dviejų sesijų: ryte ir po pietų. Aš noriu sukurti rodinys, rodantis ryte seansai tik išvardyti abėcėlės tvarka per sesijos ID. Tai yra šiek tiek sudėtinga atlikti (Jeigu aš praleidau ką nors nekilnojamojo akivaizdus).

Galite lengvai sukurti filtruotas rodinys rodomi tik tos dienos įvykiai. Kalendorius bus rodoma visų tų įvykių ir jei jie visi imtis vieta pačiu valandą, jame išvardijami juos šalia valandą lizde. tai puiku. Sudėtinga yra tai, kad, pagal numatytuosius nustatymus, nori, kad jų ID formatas. Taigi, Jei pridėti "sesijos 02" ir tada "sesijos 01" į kalendorių, parodoma tokia tvarka (ty, Sesijos 02 ir tada sesija 01). Kad jų sesijos ID tvarka, Aš maniau, kad pabandyti tai:

  1. Konfigūruoti peržiūrėti naudojant interneto vartotojo sąsaja. Sėkmės. Nėra jokių galimybių rūšiuoti elementus tokiu būdu.

    Nes tai nepadės, Aš dabar tikisi ten yra CAML užklausa kažkur, ten, kad leis man nepaisyti rūšiuoti. CQWP leidžia man padaryti, kad tipo pakeisti, gal Kalendorius bus taip pat?

  2. Redaguoti puslapio dalis, ieškoti "eksporto" funkcija ir … BZZZT! Aš negaliu eksportuoti savo XML. Nėra eksporto galimybės.

    Aš vis dar turintis, viltis, kad galiu rasti ir keisti kai kurie CAML užklausa. Kadangi aš negaliu eksportuoti žiniatinklio dalį, tai palieka SharePoint Designer.

  3. Pridėti kalendoriaus puslapio dalį į svetainę, smėlio dėžės ir atidaryti šią svetainę naudojant SharePoint Designer. Žiūriu į žiniatinklio dalies žymėjimo ir rasti what I 'm looking for. Jis buvo užkoduotas beprotybė, bet tai ten: "<ListViewXml …. >užkoduotą beprotybė</ListViewXml>". Konkrečiai, ten yra šis perlas:

<Užklausos>
<Tais atvejais, kai>
<DateRangesOverlap>
<FieldRef pavadinimas = "EventDate" />
<FieldRef pavadinimas = "Datos" />
<FieldRef pavadinimas = "RecurrenceID" />
<Vertės tipas = "Data ir laikas">
<Mėnesį />
</Vertė>
</DateRangesOverlap>
</Tais atvejais, kai>
<OrderBy><FieldRef pavadinimas = "Session_x0020_ID" /></OrderBy>
</Užklausos>

(Aš iššifruoti į &lt;'s ir &gt's ir padalinti juos į kelias eilutes pasakius).

Pridėti į <OrderBy> šiek tiek ir dabar ji rūšiuoja sesijos ID, ne vidaus sąrašo elemento ID.

GIGANTIŠKAS Patarimas o’ skrybėlę prie Becky Isserman už savo Isha Sagi dienoraštyje komentarą: http://www.sharepoint-tips.com/2008/07/caml-sorting-by-file-name.html. Aš ne įdėti į <OrderBy> tinkamoje vietoje be savo komentarą.

Tikiuosi, kad perrašyti tai aiškiau su ekrano nuotraukas greičiau, bet jei aš niekada daryti, bent jau aš tai daug.

</pabaigos>

SharePoint priemonės & Sprendimus valdymo — Nepamirškite U, CRUD (arba d šiuo klausimu)

Mes kartu praleidžia daug laiko galvoti apie SharePoint sprendimus — kaip juos kurti, kokį įrankį naudoti, Kas atsitinka, kai jie nesugeba dislokuoti, laikmatis darbo vietų, aprėptis, ir tt. Mes išleisti tiek daug laiko galvoti apie iš anksto bitai, kad tai lengva pamiršti, kad mums reikia atsisakyti jų taip pat. Įtraukimo sprendimai yra tikriausiai daug sudėtingiau, eskizinis projektas po iūriu, kaip diegti juos. Diegimo yra iš esmės cookbook reikalas. Paprastai, įdiegti, gal turite funkcijų gaviklį įkelti kai kurių duomenų į sąrašą, dalykas. Tačiau, įtraukimo yra potencialiai sudėtingesnis.

Konkretaus sprendimas gali sukurti artefaktus kaip šie:

  • Turinio tipas
  • Sąrašo apibrėžimas
  • Svetainės apibrėžimo
  • Duomenų sąrašo
  • Net imtuvai
  • InfoPath formų

Sąrašas tęsiasi.

Nors akivaizdžiai svarbu susikurti sprendimą, instantiates tų dalykų teisingai, tai labai svarbu apsvarstyti naujinti ir panaikinti atvejais. Jei jūsų sprendimas sukuria naują sąrašą ir užpildo tą sąrašą su duomenimis, Kas atsitinka, kai dėl sprendimo atsisakyti? Kai kuriais atvejais, sąrašo išbraukti. Kitais atvejais, ji turėtų liko nepažeista istoriniais tikslais. Jūsų verslo poreikius padės jums į teisingą sprendimą.

Padeda tai, sukurti matrica, kurioje kiekvieną eksponatą jūsų sprendimas išsiskleidžia į "SharePoint". Sąrašas trijų stulpelių paminklas, vienas kurti, naujinimas ir naikinimas. Kiekvienu atveju, nustatyti visų įvykių baigtį tos operacijos.

Šios rūšies analizė yra akivaizdžiai geriausia daryti prieš tirpalas yra kada nors dislokuoti SharePoint ūkio. Tačiau, kaip rūkymas, tai niekada nevėlu pradėti daryti viską teisingai. Sukurti tą matricą ir parengti planą, trūksta naujinimo/naikinimo scenarijams. Tai gali būti sunku problemÄ... iÅ¡sprÄ, bet ne mažiau kaip jūs turite įdėti problema laukeliu.

</pabaigos>

Prenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

Technorati Tags:

Greitai nustatyti: Interneto paslaugos kad bendrauti su SharePoint, InvalidOperationException

Milijonų metų, Man padėjo sukurti interneto paslauga, kuri buvo iškviestas naudojant pasirinktinį veiksmą SharePoint Designer darbo eigos. Šią savaitę, klientas norėjo jį perkelti į gamybos (pagaliau!) Taigi mes padarė.

Pasirinktinis veiksmas kuo puikiausiai, bet ji remiasi interneto paslaugos ne, tai mums ši klaida:

System.InvalidOperationException: Šią operaciją galima atlikti tik kompiuteryje, kurį prie serverių ūkio vartotojai, turintys teises skaityti iš konfigūracijos duomenų bazės SQL serverio. Šiame serveryje prie serverių ūkio, naudoti SharePoint produktų ir technologijų konfigūravimo vedlį, ant administravimo įrankiai meniu pradėti.
ne Microsoft.SharePoint.Administration.SPWebApplication.Lookup(URI requestUri)

Pasirodo, kad aš pamiršau pridėti paslaugos SharePoint taikomųjų programų telkinio IIS. Kai aš padariau, kad, tai kuo puikiausiai.

Šioje MSDN forumo parašėte man davė man reikia raktas: http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/2c97c004-7118-4e06-a62c-b2b0ac07ac99

</pabaigos>

Prenumeruoti savo dienoraštį.

Sekite mane twitter: http://twitter.com/pagalvin

Technorati Tags:

Greitai ir lengvai: Gauti SPFolder, SPItemList

Aš nuolat veikia į šią problemą ir "Google" niekada atrodo, kad suprasti, ką noriu daryti, so I figured I 'd rašyti šio žemyn.

I been doing daug atveju imtuvo derinimo paskutinę savaitę ar dvi. ER nustatomas nuo dokumentų bibliotekoje. Atskirus elementus dokumentų bibliotekoje yra glaudžiai susiję su pirminių aplankų. Taigi, Aš visada gaunu aplanką prekės už įvairias manipuliacijas. Derinant, Man reikia atnaujinti aplanką konkrečios prekės kurios ID žinau metaduomenų.

Čia yra mažai console application (suprojektuoti veikti su serverio ūkio) kad mano du argumentai: ID elemento ir reikšmę norite priskirti lauką, ,, Patvirtinimo būsena". Tai sunku kodus daug daiktų ir be klaidų tikrinimas.

Kodas atrodo iki sunkiai koduojamų svetainėje, tampa sunkiai koduotų dokumentų bibliotekoje ir tada randa nurodytą elementą. Tada randa pirminio aplanko apie šį objektą ir priskiria būsenos vertei.

Pagrindinis pamoka čia man yra tai, kad SPItem neturi gauti prieigą prie aplanko. Jums reikia naudoti SPListItem.File.

Jei kas nors rūpinasi pasiūlyti kritika arba siūlyti geresnis būdas gauti elementą aplanke, Prašome palikti komentarą.

<kodas>
naudojant Sistemos;
naudojant System.Collections.Generic;
naudojant System.Text;
naudojant Microsoft.SharePoint;
naudojant System.Collections;

vardų sritis Conchango
{
    /// <santrauka>
 /// </santrauka>
 klasės ManualFolderUpdate
    {
        statinis negalioja Pagrindinis(eilutė[] args)
        {
            eilutė MSH = "ManualFolderUpdate (v1.0): "; // MSH = "laiško antraštė"

 Konsolės.WriteLine(MSH + "Pradėti kurti.  Aš paskutinio modifikavimo 08/04/08.");

            eilutė URL = http://localhost/xyzzy;

            naudojant (SPSite oSPSite = naujas SPSite(URL))
            {

                naudojant (SPWeb oSPWeb = oSPSite.OpenWeb())
                {
                    SPList dokumentų bibliotekos = oSPWeb.Lists["Dokumentai"];

                    Konsolės.WriteLine(MSH + "Gavo dokumentų biblioteką.");

                    Konsolės.WriteLine(MSH + "Doc lib prekių skaičius: [" + docLib.ItemCount + "].");

                    LC Aplanko ID = 0;
                    eilutė NewStatus = "xyzzy";

                    Aplanko ID = sistemos.Konvertuoti.ToInt32(args[0].ToString());
                    Konsolės.WriteLine("Ieško aplanko elemento: [" + Aplanko ID + "].");

                    SPListItem Li = docLib.GetItemById(Aplanko ID);

                    SPFolder thisItemFolder = li.File.ParentFolder;

                    Konsolės.WriteLine(MSH + "Gavo aukštesnio lygio aplanką.");

                    NewStatus = args[1].ToString();
                    Konsolės.WriteLine("Nustačius statusą [" + NewStatus + "].");

                    Konsolės.WriteLine("Paspauskite grįžti į atnaujinti arba CTRL-C nutraukti padarymui.");

                    Konsolės.ReadLine();

                    thisItemFolder.Item[,, Patvirtinimo būsena"] = NewStatus;
                    thisItemFolder.Item.Update();

                    Konsolės.WriteLine(MSH + "Baigiau atnaujinama aplanką.  Išeinant.");

                } // naudojant SPWeb

            } // naudojant SPSite

 Konsolės.WriteLine(MSH + "Baigė.");

        } // Pagrindinis

    } // klasės foldersync
} // vardų sritis
</kodas>

</pabaigos>

Prenumeruoti savo dienoraštį.

Technorati Tags:

Paslėpti Pasirinktinis veiksmų SharePoint

Prieš kelis mėnesius, dirbant su projektu klientas, Aš sukūriau funkcija. Tarp kitko, kad funkcija apibrėžti pasirinktinį veiksmą (jie rodomi pagal svetainės parametrai). Vienintelis tikslas už šį pasirinktinį veiksmą buvo parodyti man, kad funkcija aktyvinimo buvo veikia taip. Iš esmės, Aš jį kaip žalios derinimo.

Daug mano varžymasis, Šis derinimo paminklas padarė savo kelią nuo dev UAT ir gamybos kol kas nors gavo klausia, "koks Sąryšis xyzzy?"

Iki šiol, mes į gamybos ir aš tikrai nenoriu pašalinti, nustatyti elements.xml ir iš naujo įdiegti.

Todd Bleaker paprastas būdas tvarkyti ją nurodė. Pasak jo:

"CustomActions yra ne kopijuoti į duomenų bazę, jie skaityti tiesiai iš Elements.xml failą ir kopijuoti į paraišką valstybės vykdymo metu. Taigi, jums nereikia išjungti, pašalinti, iš naujo įdiegti, ir iš naujo suaktyvinti funkciją pašalinti į CustomAction. Tiesiog pašalinti iš failo Elements.xml ir perdirbti programų telkinys(s) vykdomas. Kitą kartą funkcija yra apimtis, Jūs nematysite, CustomAction anymore."

Aš po jo nurodymus ir, žinoma, jie dirba.

Mano atveju, tai departamento lygio įrengimas su tik vieną WFE. Jei jums rasti sau su šia problema ateityje ir su kelių WFE, Manau, jums nereikės atlikti pakeitimus kiekvieną.

</pabaigos>

Prenumeruoti savo dienoraštį.

Greitai nustatyti: Prisijungti prie SharePoint svetainės suskumba [HttpException (0x 80004005): Užklausa atidėta.]

Vienas iš mano kolegų kūrėjas buvo rengia projektą, šią savaitę ir kuria skirtojo laiko problema, dirba statybos kai crazy žiniatinklio dalis. Savo žiniatinklio dalies buvo gerai, bet "staiga" nesusiję svetainėje tapo labai lėtai ir dažnai skirtasis su šia klaida:

[HttpException (0x 80004005): Užklausa atidėta.]

Aš prisijungęs ir pamačiau, kad keletą kitų svetainių buvo visai gerai. Aš įtariama, kad buvo kai kurių paslėptų žiniatinklio dalių puslapyje ir naudojant ir patikimas ?turinys = 1 derinimo technika, Aš iš tikrųjų rasti 11 žiniatinklio dalių puslapis, tik du iš jų buvo matomas. Dar geriau (iš let's-hope-I-find-something-ugly-here-that-I-can-fix perspektyvos), trys iš uždarytos žiniatinklio dalys turėjo pavadinimą, "Klaida".

Panaikinau žiniatinklio dalys (kuri pati buvo stebėtinai ilgai) ir kad išspręsta problema. For today 🙂

</pabaigos>

Prenumeruoti savo dienoraštį.

Technorati Tags:

Suformuluoja SSRS interneto paslaugas iš WSS / SAMANŲ FBA aplinkoje

Mums reikia remtis "CreateSubscription" metodas yra SSRS interneto paslauga, kuri yra talpinamos į FBA, kurį valdo MOSS aplinkos pasirinktinį puslapio dalies. Mes nuolat vis variantus:

  • 401: Neleidžiama
  • Objekto persikėlė

"Objektą perkelti" pranešimas buvo įdomiausių, nes jis buvo aišku, kad objekto"" (mūsų SSRS paslaugos) "persikėlė" prie login.aspx. Tai aiškiai reiškia, mes turėjo tam tikros rūšies tapatumo problema.

Aš ilgainiui supratau, kad aš pažymėtas dienoraščio įrašas iš Robert gongas kad aprašyta kaip remtis bendrosios paskirties WSS/MOSS interneto paslauga gyvenimo viduje FBA aplinkos. Atkreipkite dėmesį, kad aš negaliu susieti tiesiogiai straipsnis (nuo 06/09/08) nes nori autentifikuoti. Aš turiu pateikti nuorodą atneša jums yra "visas žinutes" Rodyti ir jūs galite rasti konkretus straipsnis ieškodami "Prieiga prie MOSS interneto paslaugas naudodami formas pagal autentifikavimo".

Čia yra kodas, kuris dirbo su mumis:

ReportingService2006 r = neapibrėžtas; 
// Autentifikuoti Autentifikavimo auth = naujas Autentifikavimo(); 
autentifikavimoURL = "http://URL/_vti_bin/Authentication.asmx";
autentifikavimoCookieContainer =
naujas CookieContainer();
LoginResult rezultatas = autentifikavimoPrisijungti("userid", "Slaptažodis");
Jei (rezultatas.Klaidos kodas == LoginErrorCode.NoError) 
{
// Jokia klaida, Taigi gauti slapukus.
CookieCollection slapukai = autentifikavimoCookieContainer.GetCookies(naujas URI(autentifikavimoURL));
Slapukas authCookie = slapukus[rezultatas.CookieName];
r =
naujas ReportingService2006();
r.URL =
"http://Server/_vti_bin/reportserver/ReportService2006.asmx";
r.CookieContainer =
naujas CookieContainer();
r.CookieContainer.Add(authCookie);
}
pabandykite
{
  r.CreateSubscription(ataskaita, extSettings, mažėjimo tvarka, eventType, matchData, parameters1);
}
sugauti (Išimtis ex)
{
  Console.WriteLine(ex.Message.ToString());
}

Aš aiškinti ko dirbti taip:

  • Mūsų puslapio dalies reikia dial-up autentifikavimo paslauga ir sako:, "Ei, Tonis, tai man!".
  • Autentifikavimo tarnyba atsakymai sakydamas:, "Ei, Aš žinau, tu. Kaip yra vaikams? Čia yra raktas."
  • Mes vadiname SSRS paslaugos ir pasakyti, "Tony atsiuntė man, Čia yra atpažinimo ženklas."

</pabaigos>

Prenumeruoti savo dienoraštį.

Greitas ir paprastas: Konfigūruoti svetainėje naudojant SharePoint Object Model C#

Bandžiau ieškoti mažai fragmentą kodo, kuri parodytų, kaip aš galiu sukurti naują SPWeb svetainių rinkinio. Man nepavyko rasti kaip greitai ir lengvai, kaip tikėjausi, kad aš maniau aš slap kartu mažai įrašas šia tema.

Šis kodas sukuria naują Wiki svetainę:

 SPSite siteCollection;

    siteCollection = naujas SPSite("http://conchang-o9l8qi");

    SPWeb w = siteCollection.OpenWeb();

    w.Webs.Add("xyzzy", "xyzzy pavadinimas",
        "xyzzy Aprašymas", 1033, SPWebTemplate.WebTemplateWIKI, klaidinga, klaidinga);

Mano pradinis paieškų nepavyko, nes aš ieškojau frazes kaip "konfigūruoti svetainėje naudojant sharepoint object model" ir pan.

Jei jūs paieškos už "Webs.Add()", Jūs rasite labai naudinga dienoraštyje įrašų skaičius, MSDN straipsnius ir SDK dokumentuose, kad eiti į gylį šiuo klausimu. Aš tikrai rekomenduojame naudoti šioje svetainėje.

</pabaigos>

Prenumeruoti savo dienoraštį.

Technorati Tags: