Kategoria: Archiwum: Rozwój programu SharePoint

Jednym z powodów "jednego lub więcej pola, które typy nie są poprawnie zainstalowana”

I został dokonywania małych tweak wczoraj w składniku web part, które wykonuje kwerendę CAML z listą.  I wprowadziło zmiany, wdrożyć go i got hit z błędem:

Wystąpił nieoczekiwany błąd w trzech WebPart prognozy pogody Outlook Day. Skontaktuj się z administratorem systemu. Jeden lub więcej typów pól nie są poprawnie zainstalowana. Przejdź do strony ustawień listy, aby usunąć te pola.

I wykazywał innego problemu oddball wcześniej, moja kwerenda CAML nieoczekiwane niezwłocznie połączyć z błędem, że programu SharePoint była zgłoszenie do mnie.  I did szybkiego wyszukiwania bing i i znaleziono to pomocne blogu przez Sandeep Nahta  (http://snahta.blogspot.com/2009/01/one-or-more-field-types-are-not.html).

Tutaj jest zły kwerendy:

kwerendy.Kwerendy ="<W przypadku gdy><I><NEQ><Nazwa FieldRef = '' abbr '' /><Typ wartości = "Tekst">SFNY</Wartość><Nazwa FieldRef = '' abbr '' /><Typ wartości = "Tekst">SFIS</Wartość></NEQ></I></W przypadku gdy>";

Tutaj jest ustalona:

kwerendy.Kwerendy ="<W przypadku gdy><I><NEQ><Nazwa FieldRef = '' abbr '' /><Typ wartości = "Tekst">SFNY</Wartość></NEQ><NEQ><Nazwa FieldRef = '' abbr '' /><Typ wartości = "Tekst">SFIS</Wartość></NEQ></I></W przypadku gdy>";

Tak, jaki z tego morał wątku jest: Upewnij się, że Twoje CAML są poprawne, lub może się pojawić błąd oddball.

Subskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

</koniec>

SharePoint 2010 Roztwór W "wdrażanie” Stan

Aby wdrożyć rozwiązanie do farmy programu SharePoint I wykorzystywane PowerShell (h/t:  Corey Roth i jego ogłoszenie blogu). 

Następnie poszedłem do centralnego administratora, dostęp do ustawień systemowych, a następnie "Zarządzaj gospodarstwa rozwiązania" Aby wdrożyć go do gospodarstwa i Moje (nieznaczne) protestom, został zablokowany w "wdrażanie".

Widziałem tego problemu nadejdzie wielokrotnie na forum MSDN, tak I was pretty układu nerwowego o nim.  I przeszukiwane wokół bit i znaleziono niniejszego artykułu pomocne (osoby pozornie unattributed z http://www.resolutionsnet.co.uk/).  Anulowane I zadanie wdrażania i gdy kliknę przycisk do roztworu, on powiedział mnie że pomyślnie wdrożyli go roztwór do trzech z czterech serwerów w gospodarstwie.

Ja poszedłem do serwera wadliwe, Zatrzymano usługę czasomierza i ponownie go uruchomić.  System Windows server faktycznie powiedział mnie że usługę nie odpowiedział na polecenie, tak że m≤wi│a iż chorych.

Tym razem, Kiedy ja poszedłem Wróć do centralnego administratora, Udało mi się wdrożyć go bez problemu.

Mamy nadzieję, że ten bit informacje pomogą niektóre w wiązanie jeden dni.

</koniec>

Subskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

Błąd dnia: „Nie można dodać określonego zestawu w GAC”

Już zostały walki I trochę programu visual studio 2010 na rozwiązanie sp2010 i był ten błąd:

Wystąpił błąd podczas wdrażania krok "Dodaj rozwiązanie": Błąd: Nie można dodać określonego zestawu w pamięci podręcznej zestawów globalnych: YourAwesomeDLLThat IAmJustNotGoingToInstallRightNow.dll

Ja poszedłem do pamięci podręcznej GAC, sam (c:\windowsassembly) Spróbuj i usunąć i napotkała błąd „plik w użyciu".

I did iisreset, Prawie pobrano Sysinternals, I zatrzymano usługę czasomierza w usługach... Wreszcie, Po prostu zamknięta i ponownie otwarte programu visual studio, sam i wreszcie udało mi się zamknąć go.

</koniec>

Subskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

Szybkie i łatwe: Debugowanie VS 2010 Rozwiązanie wdrażania

Program Visual Studio 2010 raportuje błędy twarde do debugowania podczas rozmieszczania kilka razy.  Szybki i łatwy sposób do niektórych przybliżona debugowanie jest rzucał własne o nazwie wyjątki.  Program Visual Studio wyświetli je w konsoli wyjścia.

Należy wziąć pod uwagę ten bit kodu:

image

Jeśli ta funkcja jest objęty zakresem aplikacji sieci web, Witryna będzie wartość null.  Jeśli spróbuj i odwołać się do właściwości witryny, otrzymasz błąd niejednoznaczne:

Wystąpił błąd podczas wdrażania krok "Dodaj rozwiązanie": Odwołanie do obiektu nie ustawiono instancji obiektu.

Jednakże, Jeśli throw nowych wyjątków i przekazać ciąg do konstruktora, zostanie wyświetlony komunikat o nieco bardziej przydatne:

image

Jest techniką surowy, ale dość szybkie i łatwe.

</koniec>

Subskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

Czasomierz zadanie FeatureActivated I zakres funkcji

I been working niektóre kodem, że ktoś przekazywany do mnie zadania czasomierza.  Nie dostarczył kod aktywacyjny rzeczywistej funkcji co musiałem zapisywać go, Oczywiście.  Ja wziąłem zaletą Andrew Connell słynnego blogu w przedmiot.

Korzystam z programu Visual Studio 2010 i wdrażania przechowuje z błąd "Wystąpił błąd podczas wdrażania krok 'Dodaj rozwiązanie': Odniesienia obiektu nie ustawiono instancję obiektu."

I miał jego kod zbyt dosłownie.  Był do określania zakresów funkcji na poziomie aplikacji sieci web, jak pokazano:

image

W rezultacie, właściwości, które są wysyłane do odbiorcy są z aplikacji sieci web, nie zbioru witryn.  W końcu, kod wygląda:

public override void FeatureActivated(Właściwości SPFeatureReceiverProperties)
{

    // Nie następujących funkcje o zakresie aplikacji sieci web, prowadzi to do załamywania rąk Uśmiech
    // Witryny SPSite = właściwości.Feature.Parent jako SPSite;

    SPWebApplication wa = właściwości.Feature.Parent jako SPWebApplication;

    Jeśli (wa == wartości null) Zgłoś wyjątek nowe("webapp2 jest zerowy.");

    foreach (SPJobDefinition zadania w wa.JobDefinitions)
    {

        Spróbuj
        {
            Jeśli (zadanie.Nazwa == List_JOB_NAME)

                zadanie.Usuń();
        }
        połów (E wyjątek)
        {
            Zgłoś wyjątek nowe("znacznik 2");
        } // przechwycić wyjątek e
    }

    // Zainstaluj zadania

    WeatherForecastTimerJob weatherForecastTimerJob =
        Nowy WeatherForecastTimerJob(List_JOB_NAME, wa);

    Harmonogram SPMinuteSchedule = nowe SPMinuteSchedule();
    harmonogram.BeginSecond = 0;
    harmonogram.EndSecond = 59;
    harmonogram.Interwał = 5;
    weatherForecastTimerJob.Schedule = harmonogramu;
    weatherForecastTimerJob.Update();

}

Take-away klucz jest, że gdy funkcja jest objęty zakresem do aplikacji sieci web, SPFeatureReceiverProperties, który SharePoint przekazuje do odbiornika funkcja ma parametry poziomu aplikacji sieci web.  Andrzeja, starą blogu zakłada się, że jest objęty zakresem do zbioru witryn.

</koniec>

Subskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

Gdzie jest Microsoft.SharePoint.ApplicationPages.Administration.dll?

I został przekazany projektu programu visual studio, która odwołuje się do Microsoft.SharePoint.ApplicationPages.Administration.dll.  Zajęło mi trochę podczas aby znaleźć go i myśli będzie udostępniać.  W moim środowiska, położone jest w:

c:\Program filescommon filesmicrosoft sharedweb server extensions14configadminbin

</koniec>

Subskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

CodePlex projektu – SP2010 Explorer

W ramach trwającej wysiłku nauczyć techniczne niski poziom szczegółów programu SharePoint 2010, Stworzyłem "SharePoint Explorer"rodzaju narzędzia.  Pomysł nie jest nowy.  Ja używany ten projekt więcej niż raz: http://sharepointexplorer.codeplex.com/.  Mój pomysł jest stworzyć wersję programu SharePoint, że używa połączonych składników web Part na Pokaż wszystkie szczegóły niskiego poziomu może zapewnić modelu obiektu. 

Ten post blog służy jako zarówno ogłoszenie projektu, jak również połączenie dla wolontariuszy.  Jeśli jesteś zainteresowany w pracy nad tym projektem, daj mi znać poprzez e-mail (Galvin.Paul@gmail.com) i mozemy sie dogadac.

Oto projekt: http://sp2010explorer.codeplex.com/

</koniec>

Subskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

Praca Z TreeNodeBinding w formancie ASP.NET Treeview

Pracuję na co mam nadzieję, że będzie wkrótce zwolniony CodePlex projekt, który zapewnia miło trochę zintegrowanych składników web Part, rozmawiają ze sobą za pośrednictwem połączenia dostawca konsumenta do zwiedzania witryny programu SharePoint, pod przykryciem.  (To z pewnością zostało zrobione przed, ale to jest jak cokolwiek innego projektu uczenia się).  Ma to być zamiennikiem widoku eksploratora windows SharePoint 2010 biblioteki dokumentów.

Kod ma zwykle cykliczne rozmowy w dół SPWeb i SPList uruchamianiu danego punktu.  Obiekt, który ma wszystkie że przemierzając buduje ciąg XML, który wygląda tak:

<SiteCollection url =’http://demo2010a:9090′>
 
<www
     tytuł = "Witaj świecie piaskownica" 
     Szablon = "Strona dla zespołów szybko zorganizować, Autor, i udostępniania informacji, BLA BLA BLA ">

     <Lista
        tytuł ='BCC_Health_Services_FAQs’
        Szablon ='CustomList’
       
ListId =’http://demo2010a:9090/helloworldsandbox[by ogranicznik]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
    
</Lista>

     <Lista
        Nazwa = "BCC_Notifications" 
        Szablon = "CustomList" 
        ListId =’
http://demo2010a:9090/helloworldsandbox[by ogranicznik]5a5a13d1 - 877c - 41c 0-9063-b9612be80d5e’>
     </Lista>

  </www>

</SiteCollection>

Spodziewam się do czyszczenia, że XML przed wszystko jest powiedziane i zrobione.

Ja potrzeba wobec ostatecznie dostać te informacje się i w formancie Treeview.  Nie do końca ziemi wstrząsające rzeczy.

Wyzwanie, wziąłem się na tutaj było połączenie widoku drzewa do formantu źródła danych XML, zamiast ręcznie budowania mojej treenodes jak przechodzić przez drzewa.  Zrobił to, częściowo dlatego, że celowo robię rzeczy trudniejsze na siebie (jest to projekt uczenia się po wszystkich) i częściowo dlatego, że mam to niejasne uczucie, że budowanie węzłów drzewa, jak przechodzić przez drzewa nie jest dobrym pomysłem na dłuższą metę.

Problem z tego podejścia jest to, że Treeview control nie wie o dobre atrybutów węzłach ciekawe jak "Lista" lub "web", więc to pokazuje wyjście to domyślnie:

 

image

To nie jest użyteczne.  To jest, gdzie pomaga w klasie TreeNodeBinding.  Można użyć tego powiedzieć Treeview control, jak należy interpretować XML.  Oto przykład:

tnb = nowy TreeNodeBinding();
tnb.DataMember = "Lista"; // To jest etykieta w pliku xml na stronie.
tnb.TargetField = "listid";
tnb.ValueField = "title";
tnb.ToolTipField = "Szablon";

To powiązanie mówi treeview, że gdy go znajdzie <Lista> węzeł XML, zastosowanie powiązania dla TargetField, ValueField i ToolTipField.  W maju aplikacji, te mapy w następujący sposób:

  • TargetField: Gdy ktoś kliknie na wartość węzła, to, co dostaniesz za SelectedNode.Value.  To nie należy mylić z...
  • ValueField: To, co chcesz, Treeview, aby wyświetlić użytkownikowi.
  • ToolTipField: Wartość z pliku XML, który chcesz jako etykietka narzędzia.

Dodać, że TreeNodebinding do powiązania danych w widoku drzewa i uzyskać wyjście jak to:

 

image

Będę miał więcej na to wszystko jak dalej projektu i ostatecznie umieścić to na Codeplex.

</koniec>

Subskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

Łączenie tekstu pola filtrów do niestandardowego składnika Web Part

Chciałem otrzymywać informacje z filtra pola tekstowego w programie SharePoint 2010 w moim niestandardowych składników web part.  Starałem się, używanie w tym artykule MSDN jako podstawę tego artykułu, ale jest albo przerwane lub I 'm just not following go poprawnie.

Trochę więcej wyszukiwanie wyłączone Mike Smith Wkład w witrynie MSDN tutaj (http://social.msdn.microsoft.com/forums/en-us/sharepointdevelopment/thread/72F1732A-7F93-441E-8644-2E82BBB153D9).

Istnieje wiele rzeczy tam na przyłączalnego składnika web Part, ale Mike'a artykuł jest równie proste, as it gets.

</koniec>

Subskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

Szybkie i łatwe: Wysyła Email przy użyciu serwera SMTP Gmail w C# .net

Nie jest to dokładnie taki nowy temat, ale kiedy muszę to zrobić, Znalazłem wiele "Dlaczego nie będzie to praca dla mnie" i nie zbyt wiele bezpośrednich odpowiedzi. Mam nadzieję, że ktoś znajdzie to przydatne.

Trochę następujący kod wyśle wiadomość e-mail przy użyciu konta gmail to zrobić, wraz z załącznikami:

przy użyciu System.Net.Mail;
przy użyciu System.Net;

NetworkCredential loginInfo = Nowy NetworkCredential("[Mój Gmail ID]", "[Mój Gmail hasło]");
MailMessage msg = Nowy MailMessage();
msg.Z = Nowy MailAddress("[M Gmail Id]@gmail.com");
msg.To.Add(Nowy MailAddress("paul.galvin@arcovis.com"));
msg. Przedmiot = "Program infopath dev przedmiotu badań";
msg. Ciała = "<HTML><organ><silne>Mocne przesłanie.</silne></organ></HTML>";
msg. IsBodyHtml = PRAWDA;

foreach (ciąg aFile w NIPFD. GetAttachmentNamesAndLocations())
{
    msg. Attachments.Add(Nowy Załącznik(aFile));
} // Dodawanie załączników.

SmtpClient klienta = Nowy SmtpClient("smtp.gmail.com");
klient.EnableSsl = PRAWDA;
klient.UseDefaultCredentials = FAŁSZ;
klient.Poświadczenia = loginInfo;
klient.Port = 587;
klient.EnableSsl = PRAWDA;
klient.Wyślij(msg);

Kilka bitów klucza, które mnie zwolnił i inne uwagi / notatki:

  • Pierwszy wiersz, który tworzy obiekt loginInfo wymaga korzystać z Gmaila, które pozbawione ID "@gmail.com”. Tak, Jeśli mój gmail poczta elektroniczna przemawiaæ jest "sharepoint@gmail.com"i mój hasło jest"xyzzy"następnie linii będzie wyglądać:

NetworkCredential loginInfo = Nowy NetworkCredential("sharepoint", "xyzzy");

  • Mój gmail uwa¿aæ jest skonfigurowany do używania protokołu SSL i to nie problem.
  • Istnieje kilka sprzecznych informacji tam na jakiego portu użyć. Ja używany port 587 i ono pracował czysty dla mnie.
  • W moim przypadku, Także trzeba wysłać załączniki. Obiekt NIPFD jest metoda, która wie, gdzie są moje załączniki. To jest powrót pełni ścieżka (np.. "c:\tempattachment1.jpg". W moim teście, Miałem dwa załączniki i oboje pracowali dobrze.

Użyłem programu visual studio 2008 Aby napisać ten kod.

</koniec>

Subskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

Technorati znaczniki: ,,,