Categoria Arkistot: SharePoint-kehitys

Bambu kalenterin kommunikoi kanssa SharePoint aiheuttaa "Odottamaton virhe"

Tänään, Olen työskennellyt ympäristössä, joka käyttää bambu kalenteri-web-osan parantaa yhteistoimintaa. Tämä standardi keskipitkän/pieni maatila kaksi kuormitus tasataan WFEs, indeksoinnin "application server" ja InfoPath ja klusteroiduissa SQL-taustapalvelimeen.

Asiakkaan asentanut katastrofi hyödyntämistä ohjelmiston päälle yksi WFEs, joka aiheutti rikki WFE tietyn sivuston sivustokokoelman ja. Kun kuormantasaus osoitti vaikuttaa WFE ja sivuston, käyttäjien näki suurelta osin tyhjän valkoisen ruudun lause "Odottamaton virhe". Mikään muu info osoitti, Tämä lause.

He pyysivät minua katsomaan sitä. Helposti toistanut ongelman ja sitten lisätään ?sisältö = 1 häntäpää-lta URL. Tämä on, miten opin, he käyttivät Bamboo web-osa. Menin takaisin sivun ja nyt, yhtäkkiä, se näytti mukava hallittu virhesanoma:

image

En tiedä mitä tapahtuu tai mitä tein saada hallita virhe viesti näyttää kuin lisäämällä ?sisältö = 1 bitti kyselyn merkkijonosta.

Tämä on todennäköisesti hyvin harvinainen reuna asia mutta jos saat tämän viestin, "Odottamaton virhe" mennä eteenpäin ja lisätä ?sisältö = 1 kyselymerkkijonon ja seurata.

</loppu>

Tilaa blogiin.

Noudata minut viserrys http://www.twitter.com/pagalvin

Technorati Tags: ,

Käyttämällä heijastin tiedosto: Microsoft.SharePoint.dll

Redgate .NET Reflector Michael Blumenthal has arvioida jalkeilla artikkeli hälytykset ja näkymät ("Mitä näkymiä voidaan käyttää luotaessa hälytys ?"), joka on mielenkiintoinen sen omien ansioiden perusteella. Kuitenkin, Olin vieläkin kiinnostavampaa nähdä, kuinka hän järjestelmällisesti kävelee läpi käyttämällä Redgate n .NET heijastin. Vaihe vaiheelta, Hän näyttää miten tämä työkalu jäljittää miten SharePoint määrittää, onko näkymän luetteloon olisi "subscribable" paremman puutteessa (he explains this much better than I do 🙂 ).

Tässä vaiheessa SharePoint aikakaudella, sinulla olisi lähes kuuroja ja sokeita, kuullut tai lukenut kohteleva että koristella. Se on edennyt tavaraa ja oman käsitykseni on monin tavoin viimeisenä välineenä. Kuitenkin, Jos epäilet tarvitse sitä, mutta eivät todellakaan tiedä, miten, Michael kirjoittaa ylös näyttää suuri opetusohjelma tästä aiheesta.

</loppu>

Tilaa blogiin.

Noudata minut viserrys http://www.twitter.com/pagalvin

Kalenterinäkymässä kalenterikohteiden lajitteleminen

Olen käyttää kalenterin seurata paneelikeskusteluja tiettynä päivänä. Minulla on kaksi istuntoa: aamu- ja iltapäiväkahvit. Luodaan näkymä, joka näyttää aamuistuntoihin vain aakkosjärjestyksessä kautta istunnon tunnus. Tämä on hieman hankala saavuttaa (ellei jotain todellinen ilmeinen vastaamatta jääneiden).

Voivat helposti luoda suodatetun näkymän vain kyseisen päivän tapahtumia. Kalenteri näyttää näitä tapahtumia ja jos ne kaikki tapahtuu samaan, siinä luetellaan niitä rinnakkain Fi-paikkaan. Se on mainiota. Hankala osa on se, että, oletusarvoisesti, se haluaa lisätä ne tunnuksen muoto. Niin, Jos voin lisätä "istunto 02" ja sitten "istunto 01" kalenteriin, se näkyy tässä järjestyksessä (ts, Istunto 02 ja sitten istunto 01). Luetella Istuntotunnus järjestyksessä, Ajattelin kokeilla näitä asioita:

  1. Määrittää näkymän web-käyttöliittymän avulla. Ei onnea. Valittavana ei ole asetuksia lajitella kohteita tällä tavoin.

    Koska se ei toimi, Olen nyt toivoa on jossakin siellä, että haluan ohittaa sellaista CAML-kysely. CQWP antaa minun tehdä, että muutos, ehkä kalenteri tulee myös?

  2. Web-osan muokkaaminen, etsiä "vienti" toiminta ja … BZZZT! Sen XML vienti ei onnistu. Ei ole vienti-vaihtoehto.

    Olen edelleen tilan toivoa että löydän ja muuttaa joitakin CAML-kysely. Koska web-osan vienti ei onnistu, jäljelle jää SharePoint Designer.

  3. Kalenteri-web-osan lisääminen sandbox-sivustoon ja avaa sivuston SharePoint Designerilla. Odotan markup web-osan ja löydän mitä etsin. Se on koodattu madness, mutta se on olemassa: "<ListViewXml …. >koodattu madness</ListViewXml>". Erityisesti, ei tämä helmi:

<Kysely>
<Jos>
<DateRangesOverlap>
<FieldRef nimi = "EventDate" />
<FieldRef nimi = "Lopetuspäivays" />
<FieldRef nimi = "RecurrenceID" />
<Arvon tyyppi = "DateTime">
<Kuukauden />
</Arvo>
</DateRangesOverlap>
</Jos>
<Lajittelu><FieldRef nimi = "Session_x0020_ID" /></Lajittelu>
</Kysely>

(Olen dekoodata &lt;n ja &gt: n ja jakaa ne pois useita rivejä selvyyden vuoksi).

Lisää <Lajittelu> vähän ja nyt se lajittelee istunnon tunnus, ei sisäinen luettelo Tuotteen tunnus.

JÄTTIMÄINEN kärki o’ hattu Becky Isserman hänen kommentoida Isha Sagi blogi: http://www.sharepoint-tips.com/2008/07/caml-sorting-by-file-name.html. En sanoisi <Lajittelu> oikeassa paikassa hänen kommentoimatta.

Toivon kirjoittaessani tätä selvemmin kuvakaappauksia pian, mutta jos en koskaan, ainakin tein näin paljon.

</loppu>

SharePoint-ominaisuudet & Ratkaisujen hallinta — Älä unohda CRUD U (tai asia d)

Olemme yhdessä viettää paljon aikaa ajatella SharePoint ratkaisuja — kuinka niitä luodaan, mitä työkalua pitäisi käyttää, Mitä tapahtuu, kun ne eivät ota käyttöön, Ajastintöiden, Käyttöalueet, jne. Kulutamme niin paljon aikaa ajatella etupainotteisesti bittiä, jotka on helppo unohtaa, että tarvitsemme peruuttaakseen ne. Mittaamisesta ratkaisuja on luultavasti vaikeampaa, suunnittelu näkökulmasta, kuin niiden ottamista käyttöön. Käyttöönotto on periaatteessa keittokirja. Yleensä, asentaa ominaisuuden, ehkä on toiminnon vastaanottaja ladata joitakin tietoja luetteloon, tällaisia tehtäviä. Kuitenkin, mittaamisesta on mahdollisesti monimutkaisempi.

Annettava ratkaisu luoda esineitä kuten nämä:

  • Sisällön tyyppi
  • Luettelo määritelmä
  • Sivustomääritykseen
  • Luettelon tiedot
  • Jopa vastaanottimet
  • InfoPath-lomakkeet

Lista jatkuu.

On tietenkin tärkeää luoda ratkaisun, joka instantiates esineitä oikein, on yhtä tärkeää Mieti ja poistaa tapauksissa. Jos ratkaisusi luo uuden luettelon ja päivittää luettelon tiedot, mitä tapahtuu, kun ratkaisu on vedettynä? Joissakin tapauksissa, luettelosta olisi poistettava. Muissa tapauksissa, olisi jätettävä ennalleen historiallisista tarkoituksiin. Yrityksesi vaatimuksiin opastaa oikean päätöksen.

Joiden avulla tämä, matriisin, jossa luetellaan kunkin artefakti, sinun ratkaisu otetaan käyttöön SharePoint luominen. Luettelosta kolme palstaa artefakti, yksi luo, Update- ja delete. Tapauskohtaisesti, oikean lopputuloksen operaation.

Tämä on tietenkin parasta tehdä ennen ratkaisua koskaan käyttöön SharePoint-klusterin. Kuitenkin, kuten tupakointi, ole koskaan liian myöhäistä aloittaa, tehdä asioita oikein. Luoda että matriisi ja kehittää suunnitelma puuttuu päivittäminen tai poistaminen skenaarioita. On ankara arvoitus jotta ratkaista, mutta ainakin on laitan ympärille ongelma.

</loppu>

Tilaa blogiin.

Noudata minut viserrys http://www.twitter.com/pagalvin

Technorati Tags:

Quick Fix: Verkkopalveluiden että vuorovaikutuksessa SharePoint, InvalidOperationException

Miljoonaa vuotta sitten, Autoin kehitetty verkkopalvelu, jonka kautta mukautetun toiminnon SharePoint Designer-työnkulku käynnistettiin. Tällä viikolla, Asiakas halusi siirtyä tuotanto (Lopuksi!) joten teimme.

Mukautettu toiminto toimi hienosti, mutta siihen vedota verkkopalvelu ei, antaa meille tämän virheen:

System.InvalidOperationException: Tätä toimintoa voi suorittaa vain tietokoneessa, joka on liitetty palvelinklusteriin ole oikeuksia SQL Server pystyy lukemaan kokoonpanotietokantaan. Tämän palvelimen yhteyden palvelinfarmiin, Käytä SharePoint Products and Technologies-määritystoimintoa, Valvontatyökalut Käynnistä-valikossa.
klo Microsoft.SharePoint.Administration.SPWebApplication.Lookup(URI-requestUri)

Osoittautuu, että unohdin lisää palvelu IIS SharePoint-sovellussarja. Kun tein tämän, se toimi moitteettomasti.

MSDN keskustelupalsta antoi minulle vihje tarvitsin: http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/2c97c004-7118-4e06-a62c-b2b0ac07ac99

</loppu>

Tilaa blogiin.

Seuraa minua kimittää: http://twitter.com/pagalvin

Technorati Tags:

Nopea ja helppo: Hanki SPFolder SPItemList

Pidä ajautumassa ongelman ja Google ei tunnu koskaan ymmärtää, mitä haluan tehdä, Joten ajattelin kirjoittaa tämän.

Olen tehnyt paljon tapahtuman vastaanotin virheenkorjaus viime viikon tai kaksi. ER määritellään vastaan asiakirjakirjastoon. Yksittäisiä kohteita, asiakirjakirjaston liittyvät tiiviisti pääkansiosta. Niin, Saan aina kohteen kansion erilaisia keinottelu. Korjattaessa, Minun piti päivittää kansion tietyn nimikkeen jonka tunnus tiedän metatiedot.

Tässä on pieni console application (suunniteltu toimimaan palvelinfarmin) kaksi argumenttia, joka vie: ID kohteen ja arvon määrittäminen kenttään, "Hyväksynnän tila". Se kova koodit paljon tavaraa ja ei virheentarkistus.

Koodi näyttää kova koodattu sivusto, saa kova koodattu asiakirjakirjaston ja sitten löytää ilmoitettu. Se sitten löytää kohteen pääkansion ja määrittää tila-arvo.

Keskeinen opetus täällä minulle on, että SPItem ei saada sinulle pääsyn kansioon. Sinun on käytettävä SPListItem.File.

Jos joku viitsii tarjota kritiikkiä tai ehdottaa parempi tapa saada kohde kansioon, Jätä kommentti.

<koodi>
käyttäminen Järjestelmän;
käyttäminen System.Collections.Generic;
käyttäminen System.Text;
käyttäminen Microsoft.SharePoint;
käyttäminen System.Collections;

nimitila Conchango
{
    /// <Yhteenveto>
 /// </Yhteenveto>
 luokan ManualFolderUpdate
    {
        staattinen mitättömäksi Pääsivu(merkkijono[] args)
        {
            merkkijono MSH = "ManualFolderUpdate (v1.0): "; // MSH = "viestin pääotsikko"

 Konsoli.WriteLine(MSH + "Käynnistäminen.  On viimeksi muokattu 08/04/08.");

            merkkijono URL = http://localhost/xyzzy;

            käyttäminen (SPSite oSPSite = Uusi SPSite(URL-osoite))
            {

                käyttäminen (SPWeb oSPWeb = oSPSite.OpenWeb())
                {
                    SPList Tiedostokirjaston = oSPWeb.Lists["Asiakirjat"];

                    Konsoli.WriteLine(MSH + "Got asiakirjakirjastoon.");

                    Konsoli.WriteLine(MSH + "Doc lib kohteiden määrä: [" + docLib.ItemCount + "].");

                    int FolderId-tunnusta = 0;
                    merkkijono NewStatus = "xyzzy";

                    FolderId-tunnusta = järjestelmän.Muuntaa.ToInt32(args[0].Ominaisuuden ToString());
                    Konsoli.WriteLine("Hakevat kansion kohteen: [" + FolderId-tunnusta + "].");

                    SPListItem Li = docLib.GetItemById(FolderId-tunnusta);

                    SPFolder thisItemFolder = li.File.ParentFolder;

                    Konsoli.WriteLine(MSH + "Got pääkansion.");

                    NewStatus = args[1].Ominaisuuden ToString();
                    Konsoli.WriteLine("Tilaksi asetetaan [" + NewStatus + "].");

                    Konsoli.WriteLine("Paina return päivitys tai CTRL-C keskeyttää.");

                    Konsoli.ReadLine();

                    thisItemFolder.Item[Hyväksynnän tila""] = NewStatus;
                    thisItemFolder.Item.Update();

                    Konsoli.WriteLine(MSH + "Valmis päivittää kansio.  Poistuminen.");

                } // käyttämällä SPWeb

            } // käyttämällä SPSite

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

        } // Pääsivu

    } // luokan foldersync
} // nimitila
</koodi>

</loppu>

Tilaa blogiin.

Technorati Tags:

Piilottaa mukautettuja toimintoja SharePoint

Useita kuukausia sitten, työskennellessään projektin asiakkaan, Loin ominaisuus. Muun muassa, Tämä ominaisuus määrittää mukautetun toiminnon (Nämä näkyvät mukaan sivuston asetukset). Tämän mukautetun toiminnon ainoa tarkoitus oli osoittaa minulle, että toiminnon aktivointi toimi odotetulla tavalla. Pohjimmiltaan, Sitä käytettiin raaka muodossa virheenkorjaus.

Paljon Häpeäntunteeni, Tämä debugging artefakti päässyt päässä dev UAT ja tuotanto ennen kuin joku ehtinyt pyytää, "mikä on xyzzy linkki?"

Nyt, Olemme tuotannon ja en todellakaan halua Poista, Korjaa elements.xml ja asenna.

Todd synkemmät huomautti helppo tapa käsitellä sitä. Hänen sanojensa:

"Mukautetut toiminnot ei kopioida tietokantaan, lukea Elements.xml tiedostosta ja kopioida hakemuksen suorituksen. Niin, sinun ei tarvitse poistaa, Poista, Asenna, ja aktivoida ominaisuus poistaa CustomAction. Poista Elements.xml-tiedostosta ja kierrättää sovellussarja(s) suoritettu. Seuraavan kerran ominaisuus on, et näe CustomAction enää."

Olen seurannut hänen ohjeita ja, Tietysti, ne toimivat.

Minun tapauksessani, Tämä on osasto tason asennus vain yhden WFE. Jos huomaat tämän ongelman tulevaisuudessa ja useita WFE, Mielestäni sinun täytyy muuttaa jokaisessa.

</loppu>

Tilaa blogiin.

Technorati Tags: ,

Quick Fix: SharePoint-sivuston heittää [HttpException (0x 80004005): Pyyntö aikakatkaistiin.]

Eräs kollegani kehittäjä oli työskennellyt hankkeen tällä viikolla ja juoksi aika arvoitus työskennellessään rakennus hullu web-osaan. Hänen web-osan oli hieno, mutta "yhtäkkiä" Liity sivuston tuli hyvin hidasta ja usein aikakatkaisu virhe:

[HttpException (0x 80004005): Pyyntö aikakatkaistiin.]

Kirjautunut sisään ja näki, että useat muut sivustot hienosti. Epäilin, että siellä oli joitakin piilotettuja web-osia sivulle ja käyttää luotettava ?sisältö = 1 debug tekniikka, Itse asiassa mielestäni 11 Web-osien sivu, vain kaksi, jotka näkyivät. Vielä parempi (let's-hope-I-find-something-ugly-here-that-I-can-fix näkökulmasta), kolme nämä suljetut web-osat oli nimi "Virhe".

Poistin web-osia (joka puolestaan kesti yllättävän kauan) ja ratkaista ongelma. Tänään 🙂

</loppu>

Tilaa blogiin.

Technorati Tags:

Soveltavien SSRS Web Services WSS / MOSS FBA ympäristössä

Tarvitsimme vedota "-CreateSubscription" menetelmä SSRS web-palvelun, jota isännöi FBA onnistui MOSS ympäristöön mukautetun web-osasta. Meidän pitää saada muunnelmia:

  • 401: Ei saa
  • Objekti siirretty

"Objekti siirretty" viesti oli mielenkiintoinen, koska se sanoi että "-objekti" (SSRS-palvelumme) "muutti" jotta login.aspx. Tämä tarkoitti selvästi, meillä oli jonkinlainen todennus ongelma.

Lopulta tajusin, että minulla oli bookmarked blogimerkintä Robert Garret että kuvattu kuinka jotta huutaa avuksi yleiskäyttöinen WSS-ja SAMMAL web-palvelun elävät sisällä FBA ympäristö. Huomaa, että ei voi linkittää suoraan artikkelin (Alkaen 06/09/08) koska se haluaa todentaa. Annan linkki vie sinut "kaikki viestit" näkymästä voi paikantaa tietyn artiklan etsimällä "Käyttäminen MOSS www-palveluja käyttämällä Forms Based Authentication".

Tässä on koodi, joka toimi meille:

ReportingService2006 rs = Null; 
// Todentaa Todennus auth = Uusi Todennus(); 
auth.URL = "http://URL/_vti_bin/authentication.asmx";
auth.CookieContainer =
Uusi CookieContainer();
LoginResult tulos = auth.Kirjaudu sisään("userid", "salasana");
Jos (tulos.ErrorCode == LoginErrorCode.NoError) 
{
// Virhettä, niin saat evästeet.
CookieCollection evästeet = auth.CookieContainer.GetCookies(Uusi URI(auth.URL-osoite));
Evästeen authCookie = evästeet[tulos.CookieName];
RS =
Uusi ReportingService2006();
RS.URL =
"http://Server/_vti_bin/reportserver/ReportService2006.asmx";
RS.CookieContainer =
Uusi CookieContainer();
RS.CookieContainer.Add(authCookie);
}
Yritä
{
  RS.CreateSubscription(raportti, extSettings, desc, eventType, matchData, parameters1);
}
saalis (Poikkeus ent.)
{
  Console.WriteLine(ex.Message.ToString());
}

Tulkitsen asiat toimimaan näin:

  • Web-osa täytyy valita todennuspalvelu ja sanoa, "Hei, Tony, se on minulle!".
  • IAS-palvelu vastaa sanomalla, "Hei, Tiedän. Miten on lapset? Tässä on merkki."
  • SSRS-palvelu soittaa ja sanoa, "Tony lähetti minut, Tässä on tunnus."

</loppu>

Tilaa blogiin.

Nopea ja yksinkertainen: Valmistele Web-sivusto, SharePoint-objektimallin avulla C#

Yritin etsiä vähän pätkä koodia, joka osoittaisi, miten voin luoda uuden SPWeb-sivustokokoelmassa. En löytänyt sitä kuin nopeammin tai helpommin kuin odotin, joten ajattelin, minä isku yhdessä pieni merkintä aiheesta.

Tämä koodi luo uusi Wiki-sivuston:

 SPSite Sivustokokoelma;

    Sivustokokoelma = Uusi SPSite("http://conchang-o9l8qi");

    SPWeb w = siteCollection.OpenWeb();

    w.Webs.Add("xyzzy", "xyzzy otsikko",
        "xyzzy kuvaus", 1033, SPWebTemplate.WebTemplateWIKI, False, False);

Ensimmäinen hauissa epäonnistui, koska olin etsimässä lauseita kuin "Valmistele sharepoint-objektimallin avulla web-sivusto" ja kuten.

Jos olet Etsi varten "Webs.Add()", löydät erittäin hyödyllistä blogimerkintöjen määrä, MSDN artikkeleita ja SDK-dokumentaation, jotka menevät perusteellisesti tästä aiheesta. Olen ehdottomasti suositella Tämä sivusto.

</loppu>

Tilaa blogiin.

Technorati Tags: