Archivy kategorií: Rozvoj služby SharePoint

Jedním z důvodů pro "jeden nebo více pole, které typy není správně nainstalován.”

Dělala jsem si malé tweak včera do webové části, která se CAML dotaz na seznam.  Změnu provedl, nasadili jej a dostal s chybou:

Došlo k neočekávané chybě v tří předpověď počasí aktivována den pro aplikaci Outlook. Obraťte se na správce systému. Jeden nebo více typů polí není správně nainstalován.. Přejděte na stránku Nastavení seznamu odstranit tato pole.

Tváří v tvář další otázkou podivíne dříve ne okamžitě připojit moje CAML dotaz s chybou, že SharePoint byla hlášení pro mě.  Udělal jsem rychlé hledání bing a a našla tento užitečný blogu od Sandeep Nahta  (http://snahta.blogspot.com/2009/01/one-or-more-field-types-are-not.html).

Tady je chybný dotaz:

dotaz.Dotaz ="<Kde><A><Neq><FieldRef jméno = 'Abbr' /><Typ hodnoty = 'Text'>SFNY</Hodnota><FieldRef jméno = 'Abbr' /><Typ hodnoty = 'Text'>SFIS</Hodnota></Neq></A></Kde>";

Tady je stanovena:

dotaz.Dotaz ="<Kde><A><Neq><FieldRef jméno = 'Abbr' /><Typ hodnoty = 'Text'>SFNY</Hodnota></Neq><Neq><FieldRef jméno = 'Abbr' /><Typ hodnoty = 'Text'>SFIS</Hodnota></Neq></A></Kde>";

Tak, poučení příběhu je: Zkontrolujte, zda vaše CAML je správný nebo může dojít k chybě Podivíne.

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

</Konec>

SharePoint 2010 V "nasazení řešení” Stav

Použité PowerShell k nasazení řešení na farmu serveru SharePoint (h/t:  Corey Roth a jeho blogu). 

Pak šel do centrální Správa, přístup k nastavení systému a poté na "Spravovat farmy řešení" k nasazení na farmu a k mé (lehké) zděšení, uvízl v "nasazení".

Viděl jsem tento problém tak mnohokrát na fóra MSDN, Byl jsem docela nervózní.  Hledal jsem kolem a našel tento užitečný článek (zdánlivě unattributed osobou od http://www.resolutionsnet.co.uk/).  Zrušil jsem práci nasazení a při klepnutí na do řešení, To mi řekl, že byl úspěšně nasazen na tři ze čtyř serverů v serverové farmě řešení.

Šla jsem na zbloudilé server, zastavil timer service a restartovat ji.  Systém Windows server mi ve skutečnosti řekl, že službě se nepodařilo reagovat na příkaz, Tak to mi říká, že byl nemocný.

Tentokrát, Když jsem se vrátil do centrální Správa, Byl jsem schopen nasazení bez problémů.

Doufejme, že některé v bind, jeden z dnů tohoto bitu informace pomůže.

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Chyba v den: "Nelze přidat zadané sestavení do mezipaměti GAC”

Jsem trochu bojovali s visual studio 2010 na sp2010 řešení a začínal tuto chybu:

Došlo k chybě v kroku nasazení přidat řešení: Chyba: Zadané sestavení nelze přidat do globální mezipaměti sestavení: YourAwesomeDLLThat IAmJustNotGoingToInstallRightNow.dll

Šla jsem do GAC, samotné (c:\windowsassembly) akci a odebrat a chybu "soubor používán".

Udělal jsem iisreset, Téměř staženy Sysinternals, Zastavil jsem konečně timer service v services…, Jsem prostě nezavřete a znovu neotevřete visual studio, sama a byl jsem konečně schopen ji uzavřít.

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Rychlé a snadné: Ladění VS 2010 Implementace řešení

Visual Studio 2010 hlásí těžké ladění chyby během nasazení užili.  Rychlý a snadný způsob, jak udělat velmi hrubé ladění je na vaše vlastní pojmenované výjimky vygenerovaly.  Je aplikace Visual Studio se zobrazí v konzole výstupu.

Zvažte tohoto kousku kódu:

image

Pokud je tato funkce obor na webovou aplikaci, Web bude mít hodnotu null.  Budete-li odkaz na vlastnost webu, Dostaneš nejednoznačné chyba:

Došlo k chybě v kroku nasazení přidat řešení: Odkaz na objekt není nastaven na instanci objektu.

Avšak, Pokud hodíme nové výjimky a předat řetězec konstruktoru, se trochu užitečnější zpráva:

image

Je to primitivní technika, Ale docela snadné a rychlé.

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

FeatureActivated úlohy časovače a rozsah funkcí

Pracoval jsem s nějakou kódem, který někdo podal mi pro úlohy časovače.  Ani mu poskytl skutečné funkce aktivační kód, tak jsem musel napsat, Samozřejmě.  Využil jsem Andrew Connellová slavného blogu na toto téma.

Pomocí programu Visual Studio 2010 a nasazení stále nedaří s chybou "došlo k chybě v kroku nasazení 'Přidat řešení': Odkaz na objekt není nastaven na instanci objektu."

Byl příliš doslova bere jeho kód.  Byl oborů funkce na úrovni webové aplikace, Jak je uvedeno:

image

Jako výsledek, vlastnosti, které jsou odesílány do přijímače jsou z webové aplikace, není kolekce webů.  Na konci, kód vypadá takto:

Public override void FeatureActivated(SPFeatureReceiverProperties vlastnosti)
{

    // Nedělej následující webové aplikace rozsahem funkcí, To vede k zoufalství Usměj se
    // SPSite web = vlastnosti.Feature.Parent jako SPSite;

    SPWebApplication wa = vlastnosti.Feature.Parent jako SPWebApplication;

    Pokud (wa == null) Hoď nové výjimky("webapp2 je prázdný.");

    foreach (SPJobDefinition práce v wa.JobDefinitions)
    {

        zkusit
        {
            Pokud (práce.Jméno == List_JOB_NAME)

                práce.Odstranit();
        }
        Catch (E výjimka)
        {
            Hoď nové výjimky("značka 2");
        } // zachytit výjimku e
    }

    // Nainstalujte práci

    WeatherForecastTimerJob weatherForecastTimerJob =
        nové WeatherForecastTimerJob(List_JOB_NAME, wa);

    SPMinuteSchedule plán = nové SPMinuteSchedule();
    plán.BeginSecond = 0;
    plán.EndSecond = 59;
    plán.Interval = 5;
    weatherForecastTimerJob.Schedule = plánovat;
    weatherForecastTimerJob.Update();

}

S sebou klíč je, že pokud funkce je obor na webové aplikace, SPFeatureReceiverProperties, že SharePoint předává do Receiveru funkce má webové aplikace úrovni parametry.  Staré blogu Ondřeje předpokládá, že se obor do kolekce webů.

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Kde je Microsoft.SharePoint.ApplicationPages.Administration.dll?

Podal jsem byl projekt aplikace visual studio, který odkazuje na Microsoft.SharePoint.ApplicationPages.Administration.dll.  Trvalo mi to trochu během najít ji a já myslel bych sdílel.  V mé prostředí, se nachází na:

c:\Program filescommon filesmicrosoft sharedweb server extensions14configadminbin

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

CodePlex projekt – SP2010 Explorer

Jako součást pokračující úsilí naučit technické nízké úrovni podrobnosti o serveru SharePoint 2010, Jste vytvořili "Průzkumník serveru SharePoint"druh nástroje.  Myšlenka není nové.  Myslela jsem tento projekt více než jednou.: http://sharepointexplorer.codeplex.com/.  Moje představa je vytvořit verzi SharePoint že používá připojené webové části k zobrazení nižší úrovně podrobností, že objektový model může poskytnout. 

Tento blog post slouží jako vyhlášení projektu, stejně jako výzvu pro dobrovolníky.  Pokud máte zájem pracovat na tomto projektu, Dejte mi vědět mailem (Galvin.Paul@gmail.com) a my to vyřešíme.

Tady je projekt: http://sp2010explorer.codeplex.com/

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Práce S TreeNodeBinding v ovládacím prvku ASP.NET Treeview

Na co si doufám, že bude brzy propuštěn jsem pracoval Revision projekt, který poskytuje integrovaný milé webových částí navzájem mluvit přes zprostředkovatele/spotřebitelské připojení k prohlížení webu služby SharePoint pod peřinou.  (To bylo rozhodně provedeno před, Ale to je stejně jako všechno ostatní vzdělávací projekt).  To je určen jako náhrada za pohled Průzkumníka windows SharePoint 2010 knihovny dokumentů.

Kód má obvyklé rekurzivní volání dolů objektu SPWeb a SPLists z dané počáteční bod.  Objekt, který dělá, že křížení vytvoří řetězec XML, která vypadá nějak takto:

<sitecollection url =’http://demo2010a:9090′>
 
<www
     titul = "Ahoj světě pískoviště" 
     Šablona =' web, který týmům umožňuje rychle uspořádat, Autor, a sdílení informací, BLA BLA BLA ">

     <seznam
        titul ='BCC_Health_Services_FAQs’
        Šablona ='CustomList’
       
listid =’http://demo2010a:9090/helloworldsandbox[Oddělovač]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
    
</seznam>

     <seznam
        titul = 'BCC_Notifications' 
        Šablona = 'CustomList' 
        listid =’
http://demo2010a:9090/helloworldsandbox[Oddělovač]5a5a13d1-877 c-41 c 0-9063-b9612be80d5e’>
     </seznam>

  </www>

</sitecollection>

Očekávám čistit, že XML před vše řečeno a uděláno.

Chci se nakonec získat nahoru a do ovládacího prvku Treeview.  Není přesně zemi otřesnou věci.

Výzvou, které jsem si vzal tu byl připojovaný stromové zobrazení ovládacího prvku zdroj dat XML namísto ručně budování své treenodes jak jsem Procházet stromem.  Já to udělal, částečně proto, že já jsem záměrně ztěžovat na sebe (To je vzdělávací projekt) a částečně proto, že mám tuto vágní představou, že budování strom uzlů, jak jsem Procházet stromem není vhodné pro dlouhodobé.

Problém s tímto přístupem je, že ovládacího prvku Treeview neví o dobré atributy na zajímavé uzlech jako "seznam" nebo "web", tak tento výstup se zobrazí ve výchozím nastavení:

 

image

To není užitečné.  To je, kde pomáhá třídu TreeNodeBinding.  Lze použít toto sdělit ovládacího prvku Treeview, jak to měl interpretovat XML.  Zde je příklad:

tnb = nové TreeNodeBinding();
tnb.DataMember = "seznam"; // To je Jmenovka v xml pro web.
tnb.TargetField = "listid";
tnb.ValueField = "titul";
tnb.ToolTipField = "Šablona pro zónu";

Tato vazba říká treeview, když najde, <seznam> uzel v XML, použije vazeb pro TargetField, ValueField a ToolTipField.  V květnu app, Tato mapa takto:

  • TargetField: Když někdo klikne na hodnotu uzlu, To je to, co dostanete za SelectedNode.Value.  To je nezaměňovat s...
  • ValueField: Je to, co chcete prvek Treeview zobrazený uživateli.
  • ToolTipField: Hodnoty ze souboru XML, který chcete jako popis.

Přidat, že TreeNodebinding do stromového zobrazení datové vazby a získat výstup jako:

 

image

Budu mít více na to jak pokračovat v projektu a nakonec to na Codeplex.

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Připojení k webové části vlastní textové pole filtrů

Chtěl jsem získat informace z textové pole filtru služby SharePoint. 2010 do mé vlastní webové části.  Snažil jsem se pomocí Tento článek MSDN jako základ, ale v článku je buď rozbité nebo jsem prostě není po to správně.

Trochu více hledání objevil Mike Smith MSDN příspěvek Tady (http://social.msdn.microsoft.com/forums/en-us/sharepointdevelopment/thread/72F1732A-7F93-441E-8644-2E82BBB153D9).

Je tu spousta věcí tam na připojitelné webové části, ale Mike je článek je tak jednoduché, jak to jen jde.

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Rychlé a snadné: Odeslat E-mail pomocí serveru SMTP služby Gmail v .NET C#

Není to přesně nové téma, Ale když jsem musel udělat to, Našel jsem spoustu "Proč nebude tato práce pro mě" a ne příliš mnoho přímé odpovědi. Doufám, že někdo najde to užitečné.

Následující kus kódu odešle e-mail pomocí účtu služby gmail na to, včetně příloh:

použití System.Net.Mail;
použití System.Net;

NetworkCredential loginInfo = nové NetworkCredential("[Můj Gmail ID]", "[Gmail heslo]");
MailMessage MSG = nové MailMessage();
MSG.Z = nové MailAddress("[M Gmail Id]@gmail.com");
MSG.To.Add(nové MailAddress("paul.galvin@arcovis.com"));
MSG.Předmět = "Testovací aplikace infopath dev předmět";
MSG.Tělo = "<HTML><tělo><silná>Silné poselství.</silná></tělo></HTML>";
MSG.IsBodyHtml = pravda;

foreach (řetězec aFile v NIPFD.GetAttachmentNamesAndLocations())
{
    MSG.Attachments.Add(nové Příloha(aFile));
} // Přidání příloh.

SmtpClient klient = nové SmtpClient("smtp.gmail.com");
klient.EnableSsl = pravda;
klient.UseDefaultCredentials = NEPRAVDA;
klient.Pověření = loginInfo;
klient.Port = 587;
klient.EnableSsl = pravda;
klient.Odeslat(MSG);

Několik klíčových bitů, které mě zpomalil a jiné poznámky / poznámky:

  • První řádek, který vytvoří objekt loginInfo, musí používat gmail, který ID zbaven "@gmail.com”. Tak, Pokud je moje e-mailová adresa služby gmail ", sharepoint@gmail.com"a moje heslo je"xyzzy"pak řádku vypadat:

NetworkCredential loginInfo = nové NetworkCredential("sharepoint", "xyzzy");

  • Můj účet gmail je nastavena na používání protokolu SSL a to nebyl problém.
  • Některé konfliktu informací tam na jaký port k použití. Použil jsem port 587 a fungovalo to dobře pro mě.
  • V mém případě, Také jsem musel poslat přílohy. NIPFD objekt má metodu, která ví, kde jsou mé přílohy. Vrací se plně cestu (např.. "c:\tempattachment1.jpg". V mém testu, Měl jsem dvě přílohy a oba pracoval citlivý.

Použil jsem aplikaci visual studio 2008 Chcete-li vytvořit tento kód.

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Doplněk Technorati značky: ,,,