Архиви на категоријата: SharePoint развој

Една од причините за "Една или повеќе областа видови не се инсталирани соодветно”

Јас го правев мал подеси вчера на веб-дел кој прави CAML пребарување против листа.  Не сум направил промена, распоредени тоа и беше погодена со грешка:

Настана неочекувана грешка се случиле во тридневна Outlook Прогноза за времето WebPart. Ве молиме контактирајте го администраторот на системот. Една или повеќе областа видови не се инсталирани соодветно. Оди на листата подесувања страница за да ја избришете овие области.

Бев соочува со уште еден чуден проблем порано, па јас не ја откриле веднаш се поврзете мојот CAML барање со грешка која SharePoint беше известување за мене.  Го направив брз Бинг пребарување и и најдоа ова корисно блог пост од страна на Sandeep Nahta  (http://snahta.blogspot.com/2009/01/one-or-more-field-types-are-not.html).

Тука е лоша пребарување:

query.Query = "<Каде><И><Neq><FieldRef Име = "Abbr '/><Вредност тип = "Текст">SFNY</Вредност><FieldRef Име = "Abbr '/><Вредност тип = "Текст">SFIS</Вредност></Neq></И></Каде>";

Тука таа е фиксна:

query.Query = "<Каде><И><Neq><FieldRef Име = "Abbr '/><Вредност тип = "Текст">SFNY</Вредност></Neq><Neq><FieldRef Име = "Abbr '/><Вредност тип = "Текст">SFIS</Вредност></Neq></И></Каде>";

Така, Поуката од оваа приказна е: бидете сигурни дека вашата CAML е точно или можете да добиете чуден грешка.

Да се ​​претплатите на мојот блог.

Следете ме на Twitter во http://www.twitter.com/pagalvin

</крајот>

SharePoint 2010 Решение Заглавен во "Имплементирање” Статус

Јас се користат PowerShell да се распореди на решение на фарма SharePoint (ж / т:  Corey Рот и неговиот блог пост). 

Јас тогаш отиде во централниот admin, пристапува системски поставки и потоа "Управување со фарма решенија" за да го распореди на фармата и да ја (мало) разочарување, тоа заглавил во "имплементирање".

Сум видел ова прашање излезе многу пати на MSDN форуми, па јас бев прилично нервозен околу тоа.  Барав по нешто и најде ова корисно статија (од страна на навидум unattributed лице од http://www.resolutionsnet.co.uk/).  Јас го откажа распоредување работа и кога ќе кликне во решението, тоа ми кажа дека тоа беше успешно распоредени решение за три од четирите сервери во фарма.

Отидов во блуден сервер, застана на тајмер услуга и рестартира него.  Windows Server всушност ми кажа дека услугата не успеа да одговори на команда, така што ми кажува дека тоа беше болен.

Овој пат, кога се вратив во централна admin, Јас бев во можност да го распореди без проблем.

Се надеваме дека овој малку информации ќе им помогне на некои во тешка ситуација еден на деновите.

</крајот>

Да се ​​претплатите на мојот блог.

Следете ме на Twitter во http://www.twitter.com/pagalvin

Грешка на денот: "Не можам да додадам на одреден собрание на GAC”

Сум се бори малку со Visual Studio 2010 на една sp2010 решение и беше добивање на оваа грешка:

Error occurred in deployment step ‘Add Solution’: Грешка: Не можете да додадете одредено собранието на глобалната собранието кеш: YourAwesomeDLLThat IAmJustNotGoingToInstallRightNow.dll

Отидов до GAC себе (в:\Windows собранието) да се обиде и да ги отстрани и се здобија со "датотека во употреба" грешка.

Јас не на iisreset, Јас скоро симне Sysinternals, Јас престанав да тајмерот услуга во услугите ... конечно, Јас само затворен и отворен Visual Studio се, и јас конечно беше во можност да го затвори.

</крајот>

Да се ​​претплатите на мојот блог.

Следете ме на Twitter во http://www.twitter.com/pagalvin

Брз и лесен: Дебагирање VS 2010 Решение Распоредување

Visual Studio 2010 извештаи кои тешко се дебагирање грешки при распоредување некои времиња.  А брз и лесен начин да направите некои многу груб дебагирање е да се фрли свој име исклучоци.  Visual Studio ќе ги покажеме во излез конзола.

Размислете за ова малку на кодот:

image

Ако оваа функција е scoped со web апликацијата, сајт ќе биде нула.  Ако се обидете и повикување на имотот на сајтот, ќе добиете двосмислена грешка:

Error occurred in deployment step ‘Add Solution’: Референца на објект не е поставена на пример на објект.

Сепак, ако фрли нова исклучок и да го положат низа на конструкторот, ќе добие малку повеќе корисни порака:

image

Тоа е сурова техника, но прилично брзо и лесно.

</крајот>

Да се ​​претплатите на мојот блог.

Следете ме на Twitter во http://www.twitter.com/pagalvin

Тајмер за работа FeatureActivated и функција Опсег

Сум работел со некој код кој некој предадени на мене за еден тајмер работа.  Тој не го обезбеди вистински функција активациски код, па морав да го напишам, се разбира.  Јас ја искористи Познати Ендрју Connell блог пост на тема.

Јас користам Visual Studio 2010 and deployment kept failing with an error “Error occurred in deployment step ‘Add Solution’: Референца на објект не е поставена на пример на објект ".

Бев земајќи неговиот код е премногу буквално.  Бев опсегот на функција, за да на веб апликацијата ниво, како што е прикажано:

image

Како резултат на, својствата кои се испраќаат до примачот се од веб апликација, не еден сајт колекција.  На крајот, го кодот личи ова:

јавноста замени празнина FeatureActivated(SPFeatureReceiverProperties својства)
{

    // Не го направите следново со веб стан scoped карактеристики, тоа доведува до очај Насмевка
    // SPSite сајт = properties.Feature.Parent како SPSite;

    SPWebApplication wa = properties.Feature.Parent како SPWebApplication;

    ако (WA == NULL) фрли нова исклучок("webapp2 is null.");

    foreach (SPJobDefinition работа во wa.JobDefinitions)
    {

        обидете
        {
            ако (job.Name == List_JOB_NAME)

                job.Delete();
        }
        фати (Исклучок е)
        {
            фрли нова исклучок("marker 2");
        } // фати исклучок е
    }

    // инсталирате работа

    WeatherForecastTimerJob weatherForecastTimerJob =
        нови WeatherForecastTimerJob(List_JOB_NAME, WA);

    SPMinuteSchedule распоред = new SPMinuteSchedule();
    schedule.BeginSecond = 0;
    schedule.EndSecond = 59;
    schedule.Interval = 5;
    weatherForecastTimerJob.Schedule = распоред;
    weatherForecastTimerJob.Update();

}

Клучот готова е дека кога функцијата е scoped на веб стан, на SPFeatureReceiverProperties дека SharePoint поминува на вашата функција ресивер има веб стан ниво параметри.  Стариот блог на andrew влез претпоставува дека е scoped на сајт за собирање.

</крајот>

Да се ​​претплатите на мојот блог.

Следете ме на Twitter во http://www.twitter.com/pagalvin

Каде е Microsoft.SharePoint.ApplicationPages.Administration.dll?

Ми дадоа Visual Studio проект кој референци Microsoft.SharePoint.ApplicationPages.Administration.dll.  Тоа ми требаше малку повеќе време да ја најдат и мислев дека сум ги споделите.  Во мојата средина, тоа е се наоѓа во:

в:\Program Files заеднички датотеки Мајкрософт Муабет веб сервер екстензии 14 config adminbin

</крајот>

Да се ​​претплатите на мојот блог.

Следете ме на Twitter во http://www.twitter.com/pagalvin

CodePlex проект – SP2010 Explorer

Како дел од тековните напор да ги научат технички ниско ниво детали на SharePoint 2010, Јас направивме "SharePoint Explorer"Вид на алатка.  Идејата не е нова.  Јас се користи овој проект повеќе од еднаш: http://sharepointexplorer.codeplex.com/.  Мојата идеја е да се создаде верзија на SharePoint кој го користи поврзани веб делови да се прикажат сите на ниско ниво детали дека објектот модел може да обезбеди. 

Овој блог пост служи и како најава на проектот, како и повик за волонтери.  Ако сте заинтересирани за работа на овој проект, дозволете ми да знам преку е-маил (galvin.paul @ gmail.com) и ние ќе го работат надвор.

Тука е проектот: http://sp2010explorer.codeplex.com/

</крајот>

Да се ​​претплатите на мојот блог.

Следете ме на Twitter во http://www.twitter.com/pagalvin

Работа со TreeNodeBinding во TreeView ASP.NET контрола

Сум бил работи на она што се надевам ќе биде наскоро објавен CodePlex проект кој обезбедува убав интегриран малку на веб делови разговараат со едни на други преку провајдер / потрошувачите врски за целите на истражување на еден сајт SharePoint под покривката.  (Ова секако е направено пред, но ова е за учење проект колку што било што друго).  Ова е замислена да биде замена за Windows Explorer поглед на SharePoint 2010 документ библиотеки.

Кодот е вообичаениот рекурзивен повик одредување на SPWeb и SPLists од даден почетна точка.  На објектот што го прави сето тоа traversing гради на XML стринг кој изгледа нешто како ова:

<sitecollection url =’HTTP://demo2010a:9090′>
 
<веб-
     title = "Здраво Светот Песок" 
     Дефиниција = 'А сајт за тимови брзо да организира, авторот, и споделување на информации, Бла бла бла ">

     <листа
        BCC_Health_Services_FAQs title = "’
        Дефиниција = 'CustomList’
       
listid =’HTTP://demo2010a:9090/helloworldsandbox[delim]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
    
</листа>

     <листа
        "BCC_Notifications" title = 
        Дефиниција = 'CustomList " 
        listid =’
HTTP://demo2010a:9090/helloworldsandbox[delim]5a5a13d1-877c-41c0-9063-b9612be80d5e’>
     </листа>

  </веб->

</sitecollection>

Очекувам да се исчисти дека XML пред сите е кажано и направено.

Сакам на крајот да се добие таа информација и во treeview контролата.  Не е точно земјата искршената нешта.

Предизвикот Зедов за тука беше да се поврзат преглед на дрвото во XML извор на податоци за контрола, наместо рачно градење на мојот treenodes како што напречни дрвото.  Го направив ова делумно бидејќи јас сум намерно сака да ја работите потешко на себе (ова е учење на проектот по сите) и делумно затоа што имам оваа нејасната претстава дека изградбата на дрво јазли како што напречни дрвото не е добра идеја за долгорочна.

Проблемот со овој пристап е дека treeview контролата не знаат за добри атрибути на интересни јазли како "листа" или "интернет" па тоа покажува ова излез од стандардните:

 

image

Тоа не е корисно.  Ова е местото каде TreeNodeBinding класа им помага.  Можам да го користите овој да му кажете на treeview контролата како тоа треба да го толкува на XML.  Еве еден пример:

tnb = new TreeNodeBinding();
tnb.DataMember = "list"; // Ова е етикета во XML за сајт.
tnb.TargetField = "listid";
tnb.ValueField = "title";
tnb.ToolTipField = "Template";

Ова копче кажува на treeview дека кога таа се наоѓа на <листа> јазол во XML, применуваат поврзувачи за TargetField, ValueField и ToolTipField.  Во мај стан, овие карта како што следува:

  • TargetField: Кога некој ќе кликне на еден јазол вредност, тоа е она што ќе добиете за SelectedNode.Value.  Ова не е да се меша со ...
  • ValueField: Ова е она што го сакате на treeview да се прикаже на корисникот.
  • ToolTipField: Вредноста од XML кој сакате како Tooltip.

Додаваат дека TreeNodebinding да DataBindings на дрвото и ќе добиете излез вака:

 

image

Ќе морам повеќе на сето ова како што продолжи на проектот и на крајот го стави ова горе на CodePlex.

</крајот>

Да се ​​претплатите на мојот блог.

Следете ме на Twitter во http://www.twitter.com/pagalvin

Поврзување на полето за текст Филтри за вашиот сопствен веб-Дел

Сакав да добиваат информации од полето за текст филтер во SharePoint 2010 во мојот сопствен веб дел.  Се обидов со користење овој член MSDN како основа, но статија е или скршени или јас сум не само да го следи правилно.

А малку повеќе во потрага вклучив Мајк Смит MSDN придонес тука (http://social.msdn.microsoft.com/forums/en-us/sharepointdevelopment/thread/72F1732A-7F93-441E-8644-2E82BBB153D9).

Има многу работи таму на поврзат веб делови, но статија Мајк е толку едноставно како што тоа добива.

</крајот>

Да се ​​претплатите на мојот блог.

Следете ме на Twitter во http://www.twitter.com/pagalvin

Брз и лесен: Испрати E-mail користите Gmail SMTP сервер во. NET C #

Ова не е точно нова тема, но кога ми требаше да го направи тоа, I found a lot of “why won’t this work for me” and not too many direct answers. I hope someone finds this useful.

Следниве малку на кодот ќе испрати е-маил користење на мојот Gmail сметка да го направи тоа, вклучувајќи прикачувања:

користење на System.Net.Mail;
користење на System.Net;

NetworkCredential loginInfo = нови NetworkCredential("[Мојата Gmail проект]", "[Мојот Gmail Лозинка]");
MailMessage msg = нови MailMessage();
msg.From = нови MailAddress("[М Gmail Id]@ Gmail.com");
msg.To.Add(нови MailAddress("paul.galvin@arcovis.com"));
msg.Subject = "Test infopath dev subject";
msg.Body = "<html><тело><силна>А силна порака.</силна></тело></html>";
msg.IsBodyHtml = вистина;

foreach (низа aFile во NIPFD.GetAttachmentNamesAndLocations())
{
    msg.Attachments.Add(нови Приврзаност(aFile));
} // Додавање прикачувања.

SmtpClient клиентот = нови SmtpClient("smtp.gmail.com");
client.EnableSsl = вистина;
client.UseDefaultCredentials = лажни;
client.Credentials = loginInfo;
client.Port = 587;
client.EnableSsl = вистина;
client.Send(msg);

А неколку клучни делови кои ме забави и други забелешки / белешки:

  • На првата линија која создава на loginInfo објект треба да се користи Gmail проект лишена од "@ Gmail.com". Така, ако мојот Gmail-маил адреса е "Sharepoint@gmail.com"И мојата лозинка е" xyzzy "тогаш линијата ќе изгледа:

NetworkCredential loginInfo = нови NetworkCredential("sharepoint", "xyzzy");

  • Моите Gmail сметка е поставена да се користи SSL и дека не е проблем.
  • There is some conflicting information out there on what port to use. I used port 587 и тоа добро работеа за мене.
  • Во мојот случај, I also needed to send attachments. That NIPFD object has a method that knows where my attachments are. It’s returning a fully path (e.g. "В:\temp\attachment1.jpg”. In my test, Имав две додатоци и тие двајцата добро работеа.

Јас се користи Visual Studio 2008 да се напише овој код.

</крајот>

Да се ​​претплатите на мојот блог.

Следете ме на Twitter во http://www.twitter.com/pagalvin

Technorati Тагови: ,,,