Kategooria Arhiiv: SharePointi areng

Bambusest kalender toimiksid koos SharePointi põhjustab "ootamatu viga"

Täna, Olen töötanud keskkond, mis kasutab bambusest kalender veebiosa ka parema koostöö. See standard keskmise/väikese talu koos kahe koormuse tasakaalus WFEs, "application server" indekseerimise ja InfoPath ja rühmitatud SQL tagasi lõpp.

Klient installitud mõned katastroofi taaskasutamise tarkvara peale üks on WFEs ja mille toimunud purustatud WFE konkreetse saidi saidikogumi. Kui koormuse tasakaalustus viitas mõjutatud WFE ja et veebisait, kasutajatele nägin suuresti tühi valge ekraan, lause "ilmnes ootamatu tõrge". Mingit muud infot näitas, just see lause.

Nad palusid mul vaadata seda. Ma lihtsalt esitatud probleemi ja seejärel lisatakse üks ?sisu = 1 URL-i lõppu. See on ja kuidas õppisid nad kasutavad bambusest veebiosa. Ma läksin tagasi lehele ja nüüd, äkki, ta näitas mulle kena korrektse veateate:

image

Ma ei tea, mis juhtus või mida ma tegin kontrollitud veateate kuvamiseks välja arvatud lisades esitatud ?sisu = 1 bit Päringustring.

See on ilmselt väga haruldased serva olukorrast, kuid kui sa seda sõnumit, "Ilmnes ootamatu tõrge" Mine edasi ja lisada ?sisu = 1 Päringustring ja vaata kuhu see viib.

</lõpp>

Telli minu blogi.

Järgi mind vidistama kell http://www.twitter.com/pagalvin

Technorati Tags: ,

Kasutades reflektor Microsoft.SharePoint.dll

Redgate .NET Reflector Michael Blumenthal on pandud ka artikli kohta teatiste ja seisukohad ("Vaated kasutamist teatise loomisel ?"), mis on huvitav omaette. Aga, Olin isegi rohkem huvitatud, et näha, kuidas ta metoodiliselt loeksite protsessi kasutades Redgate's .NET reflektor. Järk-järgult, ta näitab, kuidas kasutada seda tööriista teele ette kuidas SharePoint otsustab, kas view loetellu tuleks "subscribable" puudumise tõttu parem sõna (he explains this much better than I do 🙂 ).

Sel hetkel SharePointi ajastu, siis oleks peaaegu olema kurt ja pime on kuulnud või lugenud selle tφφriista kasutamine. See on arenenud kraami ja minu enda tunne on, et see on paljuski viimasena vahend. Aga, Kui sa arvad seda vajavad, kuid tõesti ei tea, kuidas, Michael's kirjutada-up tundub suurepärane juhendaja sel teemal.

</lõpp>

Telli minu blogi.

Järgi mind vidistama kell http://www.twitter.com/pagalvin

Technorati Tags: , ,

Sorteerimine kalendriüksuste kalendrivaates

Ma kasutan kalendri jälgida paneeldiskussioonid päeval. Mul on kaks istungit: hommikul ja pärastlõunal. Soovin luua vaade, milles kuvatakse hommikul istungid ainult loetletud tähestikuliselt kaudu seansi ID. See on natuke keeruline täita (Kui mul jäi midagi päris selge).

Ma lihtsalt luua filtreeritud vaates nähtaval just sel päeval sündmused. Kalender näitab kõik need sündmused ja kui see kõik tegevus toimub samal tunnil, selles loetletakse kõrvuti paigutamiseks tund pesa. See on suurepärane. Keeruline osa on see, et, Vaikimisi, ta tahab kantakse need ID vorming. Nii, kui lisan "istungil 02" ja siis "seanss 01" kalendrisse, See näitab nende järjekorras (St, Seanss 02 ja siis seanss 01). Liigitavad seansi ID järjekorras, Ma arvasin, et proovida neid asju:

  1. Konfigureerige kasutaja liidese abil vaade. Õnne. On mingit võimalust üksuste sortimiseks.

    Kuna see ei tööta, Ma olen nüüd lootes seal asub CAML päringut kusagil seal, mis lubab mul alistada Sortimisalus. CQWP laseb mul teha, et selline muutus, Võibolla kalender on?

  2. Redigeerige veebiosa, Otsige "eksport" funktsioon ja … BZZZT! Ma ei saa eksportida oma XML. Ekspordi võimalust.

    Ma olen ikka ettevõttes läbi loodan et ma leiame ja muuta mõned CAML päringut. Kuna ma ei saa eksportida veebiosa, See jätab SharePoint Designeris.

  3. Liivakasti saidi kalendri veebiosa lisamine ja avada selle saidi SharePoint Designeri abil. Ma vaatan veebiosa märgistus ja ma leian, mida ma otsin. See on kodeeritud madness, Aga see on seal: "<ListViewXml …. >kodeeritud hullus</ListViewXml>". Konkreetselt, ei ole see pärl:

<Päring>
<Kui>
<DateRangesOverlap>
<FieldRef nimi = "EventDate" />
<FieldRef nimi = "Lõppkuupäev" />
<FieldRef nimi = "RecurrenceID" />
<Value Type = "DateTime">
<Kuu />
</Väärtus>
</DateRangesOverlap>
</Kui>
<OrderBy><FieldRef nimi = "Session_x0020_ID" /></OrderBy>
</Päring>

(Ma olen dekodeerida ning &lt;'s ja &gt's ja jagada neid mitmeks reaks selguse huvides).

Lisada ka <OrderBy> natuke ja nüüd ta sordib seansi ID, ei ole sisemine loendi üksuse ID.

HIIGLASLIK otsa o’ et müts Becky Isserman tema kommentaar Isha Sagi blogi postitus: http://www.sharepoint-tips.com/2008/07/caml-sorting-by-file-name.html. Ma ei pane selle <OrderBy> õiges kohas tema kommentaarita.

Ma loodan, et kirjutada see selgemalt Saal kaadrid kiiresti, kuid juhul, kui ma kunagi ei, vähemalt ma tegin seda.

</lõpp>

SharePointi funktsioonid & Lahenduste haldamine — Ära unusta SODI U (või et asi D)

Veedame ühiselt palju aega mõelda SharePointi lahenduste — Kuidas luua neile, millist tööriista kasutamine, mis juhtub, kui nad ei suuda juurutamiseks, ajastitööd, ulatused, jne. Me kulutame nii palju aega mõelda up-front bitti, et see on lihtne unustada, et me peame neid samuti tõmbuda. Sissetõmbejõudu lahendused on ilmselt raskem, eelprojekti vaatenurgast, Kui rakendades neile. Installimine pole põhimõtteliselt kokaraamat afäär. Tavaliselt, soovite funktsiooni installida selle, äkki on mõned andmeid laadida loendisse funktsioon vastuvõtja, sellised asjad. Aga, sissetõmbejõudu on potentsiaalselt keerulisem.

Antud lahendust võib luua esemeid nagu need:

  • Sisu tüüp
  • Loendi määratlemine
  • Saidi määratluse
  • Loendis asuva teabega
  • Isegi vastuvõtjad
  • InfoPathi vormid

Nimekiri läheb edasi.

Kuigi see on loomulikult oluline luua lahenduse, mis instantiates neid esemeid õigesti, See on sama oluline kaaluda uuendamine ja kustutamine juhtudel. Kui teie lahendus loob loendi ja asustab selle nimekirja koos andmete, mis juhtub, kui lahendus on tõmmatud? Mõnel juhul, loend kustutatakse. Muudel juhtudel, See tuleks jätta puutumata ajaloolistel eesmärkidel. Teie ettevõtte vajadusi juhatab teid õige otsuse.

Abiks olla, Looge iga artefakt oma lahendust juurutatakse SharePointi loendiga maatriksi. Loetlege kolm veergude kohta artefakt, ühe Loo, Värskenda ja Kustuta. Iga juhtumi puhul, õige tulemuse kõnealuse operatsiooni.

Selline analüüs on ilmselt kõige parem teha enne lahendus kunagi kasutusele SharePointi serveriparki. Aga, nagu keelatud, ei ole kunagi liiga hilja alustada tehes asju õigesti. Et maatriks luua ja arendada tegevuskava puudu värskendamise ja kustutamise stsenaariumid. See võib olla raske probleemi lahendada, aga vähemalt saad panna kasti probleemi.

</lõpp>

Telli minu blogi.

Järgi mind vidistama kell http://www.twitter.com/pagalvin

Technorati Tags:

Kiiresti kindlaks: Veebiteenused, et Interact SharePointiga, InvalidOperationException

Miljonit aastat tagasi, Aitasin välja töötatud veebipõhine teenus, mis käivitati via SharePoint Designeri töövoo kohandatud toiming. Sel nädalal, klient tahtis kolida tootmine (lõpuks!) andsime.

Kohandatud toiming töötas trahvi, kuid see tugines veebiteenus ei, andes meile see viga:

System.InvalidOperationException: Seda toimingut saab teha ainult arvutis, mis on liidetud mõnda serveriparki kasutajad, kellel on SQL serveris konfiguratsiooniandmebaasist lugeda. Ühendada see server serveriparki, Kasuta SharePointi toodete ja tehnoloogiate konfigureerimisviisard, Haldusriistad menüüs Start asuva.
kell Microsoft.SharePoint.Administration.SPWebApplication.Lookup(URI requestUri)

Tuleb välja, et ma unustasin lisada teenuse SharePoint rakendusekaust IIS. Kui ma tegin seda, See töötas trahvi.

Seda MSDN Foorum postitad andis mulle mul vaja aimugi: http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/2c97c004-7118-4e06-a62c-b2b0ac07ac99

</lõpp>

Telli minu blogi.

Järgi mind vidistama: http://twitter.com/pagalvin

Technorati Tags:

Kiire ja lihtne: Saada SPItemList SPFolderit

Hoida jooksevad selle probleemi ja Google ei tundu aru, mida ma tahan teha, nii et ma arvasin ma oleks kirjutada see.

Olen teinud palju sündmuse vastuvõtja viimase nädala või kaks silumine. ER määratletakse vastu dokumenditeeki. Dokumenditeegi üksikesemetena on tihedalt seotud emakausta. Nii, Ma olen alati saada üksus kausta erinevaid töötlusi. Silumise ajal, Mul on vaja kausta kindlustuskulu kelle ID tean metaandmete värskendamine.

Siin on väike console application (mõeldud töötama serveripargi serveritele) mis saab kaks argumenti: üksuse ID, väärtuse määramiseks välja, "Kinnituse olek". See raske koodid palju asju ja on vigade kontroll.

Kood tundub kõva kodeeritud saidi, saab kõva kodeeritud dokumenditeek ja siis leiab näidatud. Seejärel leiab selle üksuse emakausta ja kinnistab oleku väärtus.

Peamiseks õppetunniks minu jaoks on see, et SPItem ei saa teile juurdepääsu kausta. Peate kasutama SPListItem.File.

Kui keegi hoolib pakkuda kriitika või soovitan parem viis saada üksus kausta, palun jäta kommentaar.

<kood>
kasutades Süsteemi;
kasutades System.Collections.Generic;
kasutades System.Text;
kasutades Microsoft.SharePoint;
kasutades System.Collections;

nimeruumi Conchango
{
    /// <Kokkuvõte>
 /// </Kokkuvõte>
 klass ManualFolderUpdate
    {
        staatiline tühine Esilehele(stringi[] args)
        {
            stringi MSH = "ManualFolderUpdate (v1.0): "; // MSH = "sõnumi päis"

 Konsool.WriteLine(MSH + "Käivitamine.  Mul oli muudetud 08/04/08.");

            stringi URL = http://localhost/xyzzy;

            kasutades (SPSite'i oSPSite = Uus SPSite'i(URL-i))
            {

                kasutades (SPWebi oSPWeb = oSPSite.OpenWeb())
                {
                    SPList Dokumenditeegi = oSPWeb.Lists["Dokumendid"];

                    Konsool.WriteLine(MSH + "Sain dokumenditeeki.");

                    Konsool.WriteLine(MSH + "Doc lib üksuste arv: [" + docLib.ItemCount + "].");

                    int Kausta ID = 0;
                    stringi NewStatus = "xyzzy";

                    Kausta ID = süsteemi.Teisendada.ToInt32(args[0].ToString());
                    Konsool.WriteLine("Taotlev üksus kausta: [" + Kausta ID + "].");

                    SPListItem Li = docLib.GetItemById(Kausta ID);

                    SPFolderit thisItemFolder = li.File.ParentFolder;

                    Konsool.WriteLine(MSH + "Sain emakausta.");

                    NewStatus = args[1].ToString();
                    Konsool.WriteLine(Sätte olekut" [" + NewStatus + "].");

                    Konsool.WriteLine("Vajutage edasi-tagasi endale update või CTRL-C katkestada.");

                    Konsool.ReadLine();

                    thisItemFolder.Item[Kinnitamise olekut""] = NewStatus;
                    thisItemFolder.Item.Update();

                    Konsool.WriteLine(MSH + "Lõpetanud selle kausta värskendamine.  Väljumine.");

                } // kasutades SPWeb

            } // kasutades SPSite'i

 Konsool.WriteLine(MSH + "Valmis.");

        } // Esilehele

    } // klassi foldersync
} // nimeruumi
</kood>

</lõpp>

Telli minu blogi.

Kohandatud toimingud SharePointi peitmine

Mitu kuud tagasi, töötades projekti kliendile, Olen loonud funktsioon. Muu hulgas, selle funktsiooni määratletud kohandatud toiming (need ilmuvad saidi sätted). Kohandatud toimingu ainus eesmärk oli näidata mulle, mis funktsiooni aktiveerimine oli tööta oodatult. Põhimõtteliselt, Ma kasutasin seda töötlemata kujul silumine.

Minu piinlikkust palju, silumisteabe artefakt tegi oma tee dev UAT ja tootmise enne keegi saanud umbes paludes, "mis on see xyzzy link?"

Nüüd, Meil on tootmise ja ma tõesti ei taha desinstallita, parandada elements.xml ja seejärel uuesti.

Todd Bleaker märkis lihtne hakkama. Tema sõnades:

"CustomActions ei ole kopeeritud andmebaasi, otse Elements.xml faili lugeda ja kopeerida taotluse riigi käitusajal. Nii, pole vaja välja lülitada, desinstallimine, uuesti, ja uuesti aktiveerida funktsiooni eemaldamiseks on kohandatud toiming linditoimingu. Lihtsalt eemaldage faililt Elements.xml ja recycle rakendusekausta(s) osutamine. Funktsioon on oma ulatuselt järgmine kord, selle kohandatud toiming linditoimingu ei näe enam."

Ma järgisin tema juhiste ja, Muidugi, nad töötavad.

Minu puhul, See on osakonna tasandil paigaldus vaid ühe WFE. Kui sa leiad end, see probleem tulevikus ja mitu WFE, Usun, et sa pead selle muutuse igas.

</lõpp>

Telli minu blogi.

Technorati Tags: ,

Kiiresti kindlaks: Juurdepääs SharePointi saidile viskab [HttpException (0x 80004005): Request timed out.]

Üks kolleeg Arendaja oli projekti tööd sel nädalal ja sattus probleem timeout samas tööd hoone mõned hull veebiosa. Oma veebiosa oli korras, Aga "ootamatult" sõltumatute saidi sai väga aeglaselt ning sageli lõppes see viga:

[HttpException (0x 80004005): Request timed out.]

Ma sisse loginud ja nägin, et mitu muud alad olid hästi. I kahtlustatakse, et olid mõned peidetud veebiosade lehel ja kasutades on ustav ?sisu = 1 debug tehnikat, Ma tegelikult leida 11 selle lehe veebiosa, ainult kaht neist olid nähtavad. Veel parem (let's-hope-I-find-something-ugly-here-that-I-can-fix vaatenurgast), kolm neist suletud veebiosade oli nimi "Viga".

Neid veebiosi on kustutatud (mis ise võttis üllatavalt palju aega) ja probleem kadus. For today 🙂

</lõpp>

Telli minu blogi.

Technorati Tags:

Asutusesisestes julgeolekunõuete veebiteenused, WSS / MOSS FBA keskkonnas

Meil on vaja kasutada "CreateSubscription" meetod julgeolekunõuete veebiteenus, mis on majutatud mis FBA õnnestus MOSS keskkonnale kohandatud veebiosast. Me kinni saada variatsioonid:

  • 401: Ei ole lubatud
  • Objekt liikus

"Objekt liikus" sõnum oli kõige huvitavam, sest ta ütles, et "objekt" (Meie süsteemispetsiifiliste julgeolekunõuete loetelu teenus) "viinud" et login.aspx. Selgelt tähendas see meil oli mingi autentimise probleem.

Ma lõpuks aru, et olin järjehoidja blog entry Robert Garret poolt kirjeldatud kuidas tugineda üldotstarbelised WSS/MOSS veebiteenuse elu sees FBA keskkond. Pange tähele, et ma ei saa link otse artikkel (seisuga 06/09/08) eesmärgiga, et autentida. I pakkuda link viib teid on "kõik postitused" Vaata ja sa ei leia konkreetse artikli otsides "Täiendid MOSS veebi teenuseid kasutades Blankettide alus".

Siin on kood, mis töötas meie:

ReportingService2006 rs = null; 
// Autentida Autentimiseks autentimine = Uus Autentimine(); 
Auth.URL = "http://URL/_vti_bin/Authentication.asmx";
Auth.CookieContainer =
Uus CookieContainer();
LoginResult tulemus = auth.Logi sisse("kasutajanimi", "password");
Kui (tulemus.ErrorCode == LoginErrorCode.NoError) 
{
// Viga ei ole, nii et saada küpsiseid.
CookieCollection küpsised = auth.CookieContainer.GetCookies(Uus URI(Auth.URL));
Küpsis authCookie = küpsised[tulemus.CookieName];
RS =
Uus ReportingService2006();
RS.URL =
"http://server/_vti_bin/reportserver/ReportService2006.asmx";
RS.CookieContainer =
Uus CookieContainer();
RS.CookieContainer.Add(authCookie);
}
Proovige
{
  RS.CreateSubscription(aruanne, extSettings, desc, eventType, matchData, parameters1);
}
saak (Erand ex)
{
  Console.WriteLine(ex.Message.ToString());
}

Ma tõlgendada asju niimoodi töötada:

  • Meie veebiosa peab telefonivarustus autentimise teenust ja öelda, "Kuule, Tony, See olen mina!".
  • Autentimise teenus vastuseid öeldes, "Kuule, Ma tean, et sa. Kuidas on lapsed? Siin on märgiks."
  • Süsteemispetsiifiliste julgeolekunõuete loetelu teenus helistama ja ütlema, "Tony saatis mulle, Siin on tõend."

</lõpp>

Telli minu blogi.

Kiire ja lihtne: C# SharePoint objekti mudeli abil veebisaidi säte

Üritasin vähe koodijupi kood, mis näitaks, kuidas ma saan luua uue SPWeb kogum. Ma ei leia seda kiiresti või lihtsalt nagu ma oodata, nii et ma arvasin ma oleks slap koos vähe kanne teema.

See kood luuakse uus Wiki sait:

 SPSite'i siteCollection;

    siteCollection = Uus SPSite'i("http://conchang-o9l8qi");

    SPWebi w = siteCollection.OpenWeb();

    w.Webs.Add("xyzzy", "xyzzy pealkiri",
        "xyzzy kirjeldus", 1033, SPWebTemplate.WebTemplateWIKI, väär, väär);

Minu esialgsed otsingud nurjus, sest ma otsisin väljendeid nagu "ette sharepoint objekti mudeli abil veebisaidi" jms.

Kui te Otsi hotelle jaoks "Webs.Add()", leiad väga kasulik blog kirjete arv, MSDN-i artiklite ja käsitlev SDK-dokumentatsioon, mis lähevad sügavuse, sellekohane. Ma kindlasti soovitada See sait.

</lõpp>

Telli minu blogi.

Technorati Tags: