катэгорыя Архівы: SharePoint развіцця

Адной з прычын "Адзін або некалькі тыпаў палёў не ўстаноўлены належным чынам”

Я рабіў невялікі налады ўчора на вэб-частка, якая робіць CAML запыт да спісу.  Я зрабіў змены, разгарнуць яго і збіла з памылкай:

Раптоўная памылка ў трохдзённы прагноз надвор'я WebPart. Калі ласка, звярніцеся да сістэмнага адміністратара. Адзін або некалькі тыпаў палёў не ўстаноўлены належным чынам. Перайдзіце на старонку налад спісу, каб выдаліць гэтыя палі.

Я стаяла перад іншым дзіваком пытанне раней, таму я не адразу падключыць CAML запыт з памылкай, што SharePoint паведамляў мне.  Я зрабіў хуткі пошук і Бінг і знайшоў гэта карысным паведамленне ў блогу па Sandeep нахт  (http://snahta.blogspot.com/2009/01/one-or-more-field-types-are-not.html).

Вось няправільны запыт:

query.Query = "<Дзе><І><Neq><FieldRef NAME = 'Скарачэньне' /><Значэнне Тып = "Тэкст">SFNY</Значэнне><FieldRef NAME = 'Скарачэньне' /><Значэнне Тып = "Тэкст">SFIS</Значэнне></Neq></І></Дзе>";

Тут ён замацаваны:

query.Query = "<Дзе><І><Neq><FieldRef NAME = 'Скарачэньне' /><Значэнне Тып = "Тэкст">SFNY</Значэнне></Neq><Neq><FieldRef NAME = 'Скарачэньне' /><Значэнне Тып = "Тэкст">SFIS</Значэнне></Neq></І></Дзе>";

Так, Мараль гэтай гісторыі з'яўляецца: пераканайцеся, што ваш CAML правільна ці вы можаце атрымаць дзіўныя памылкі.

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

</канец>

SharePoint 2010 Рашэнне затрымаўся ў «Разгортванне” Статус

Я PowerShell для разгортвання рашэння на ферме SharePoint (г / т:  Коры Рот і яго паведамленне ў блогу). 

Затым я адправіўся на цэнтральны адміністратар, Доступ да сістэмы Налада, а затым "Кіраванне фермы рашэнні", каб разгарнуць яго на ферму і, да майго (нязначны) трывога, ён затрымаўся ў "разгортванні".

Я бачыў гэтае пытанне прыдумалі шмат разоў на форумах MSDN, так што я быў даволі заклапочаны гэтым.  Я шукаў вакол трохі, і знайшлі гэтую інфармацыю карыснай артыкуле (, Здавалася б, не адносіцца чалавека ад http://www.resolutionsnet.co.uk/).  Я адмяніў заданне разгортвання і калі я націснуў у раствор, яна сказала мне, што яна паспяхова разгорнутыя рашэння трох з чатырох сервераў у ферме.

Я пайшоў на праблемны сервер, спыніла служба таймера і перазапусціць.  Windows Server самой справе сказаў мне, што служба не адказвае на каманды, так, каб сказаў мне, што ён быў хворы.

На гэты раз, Калі я вярнуўся ў Central Admin, Я быў у стане разгарнуць яго без праблем.

Спадзяюся, гэта трохі інфармацыі дапаможа некаторым ў бязвыхадным становішчы адзін з дзён.

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Памылка ў дзень: "Немагчыма дадаць названы Асамблеі GAC”

Я змагаўся трохі з Visual Studio 2010 на sp2010 рашэнне і атрымліваю гэтую памылку:

Error occurred in deployment step ‘Add Solution’: Памылка: Немагчыма дадаць азначанай зборку ў глабальны кэш зборак: YourAwesomeDLLThat IAmJustNotGoingToInstallRightNow.dll

Я пайшоў да сябе GAC (З:\Windows Assembly) , Каб паспрабаваць ліквідаваць і атрымаў "файл выкарыстоўваецца" памылка.

Я IISRESET, Я ледзь не запампаваў Sysinternals, Я спыніў таймер паслуг у сферы паслуг ... у рэшце рэшт, Я проста закрыта і зноў Visual Studio сама, і я, нарэшце, змог зачыніць яе.

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Хутка і лёгка: Адладка VS 2010 Разгортванне рашэнняў

Visual Studio 2010 справаздачы цяжка адладжваць памылкі падчас усталёўкі некалькі разоў.  Хуткі і просты спосаб, каб зрабіць некаторыя вельмі грубыя адладкі кінуць ўласнага імя выключэння.  Visual Studio пакажа іх у кансолі вываду.

Разгледзім гэты кавалак кода:

image

Калі гэтая функцыя з'яўляецца вобласцю для вэб-прыкладанняў, Сайт будзе нулявым.  Калі вы паспрабуеце і спасылацца на ўласцівасць сайта, Вы атрымаеце неадназначныя памылкі:

Error occurred in deployment step ‘Add Solution’: Спасылка на аб'ект не паказвае на асобнік аб'екта.

Аднак, Калі выкінуць новае выключэнне і перадаць радок у канструктар, Вы атрымліваеце трохі больш карысным паведамленнем:

image

Гэта сырой тэхніку, але даволі хутка і лёгка.

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Таймер працы FeatureActivated і функцыі Вобласць

Я працую з кодам, што нехта перадаў мне заданне таймера.  Ён не даў рэальны код актывацыі функцыі так што мне прыйшлося пісаць, Вядома.  Я скарыстаўся Вядомы блог Эндру Коннелл паведамленне па тэме.

Я выкарыстоўваю Visual Studio 2010 and deployment kept failing with an error “Error occurred in deployment step ‘Add Solution’: Спасылка на аб'ект не паказвае на асобнік аб'екта. "

Я браў яго код занадта літаральна.  Я была аглядная функцыя ўзроўні вэб-прыкладанні, як паказана на малюнку:

image

У выніку, ўласцівасці, якія накіроўваюцца ў прыёмнік з вэб-прыкладанні, Ці не сайтаў.  У рэшце рэшт, Код выглядае наступным чынам:

грамадскага несапраўднымі пераазначэнне FeatureActivated(SPFeatureReceiverProperties ўласцівасці)
{

    // Ці не выконваць наступныя вэб-прыкладанні функцыі ў дыяпазоне, гэта прыводзіць да адчаю ўсмешка
    // SPSite сайта = properties.Feature.Parent як SPSite;

    SPWebApplication WA = properties.Feature.Parent як SPWebApplication;

    калі (ва == NULL) выкінуць новае выключэнне("webapp2 is null.");

    Еогеасп (SPJobDefinition працу ў wa.JobDefinitions)
    {

        старацца
        {
            калі (job.Name == List_JOB_NAME)

                job.Delete();
        }
        злавіць (Выключэнне е)
        {
            выкінуць новае выключэнне("marker 2");
        } // злавіць Выключэнне е
    }

    // ўсталяваць працу

    WeatherForecastTimerJob weatherForecastTimerJob =
        новыя WeatherForecastTimerJob(List_JOB_NAME, Вашынгтон);

    SPMinuteSchedule = запланаваць новыя SPMinuteSchedule();
    schedule.BeginSecond = 0;
    schedule.EndSecond = 59;
    schedule.Interval = 5;
    weatherForecastTimerJob.Schedule = графіку;
    weatherForecastTimerJob.Update();

}

Ключ на вынас, што, калі гэтая функцыя ў галіне бачнасці вэб-дадатак, SPFeatureReceiverProperties SharePoint, што перадаваны ў вашу функцыю прымача мае вэб параметраў прыкладання узроўні.  Старая запіс у блогу Андрэя мяркуе, што гэта вобласцю да сямейства сайтаў.

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Дзе Microsoft.SharePoint.ApplicationPages.Administration.dll?

Я быў перададзены праект Visual Studio, якая спасылаецца Microsoft.SharePoint.ApplicationPages.Administration.dll.  Мне запатрабавалася некаторы час, каб знайсці яго, і я думаў, што я хацеў бы падзяліцца.  У маім асяроддзі, ён знаходзіцца ў:

З:\Program Files Common Files Microsoft Shared пашырэньні вэб-сервера 14 Config adminbin

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

CodePlex праект – SP2010 Правадыра

У рамках бягучых намаганняў, каб даведацца тэхнічныя падрабязнасці нізкага ўзроўню SharePoint 2010, Я стварыў "Правадыр SharePoint"Від інструмента.  Ідэя не новая.  Я выкарыстаў гэты праект больш за адзін раз: http://sharepointexplorer.codeplex.com/.  Мая ідэя заключаецца ў стварэнні версіі SharePoint, якая выкарыстоўвае звязаныя вэб-часткі, каб паказаць усе нізкаўзроўневых дэталяў, што аб'ектная мадэль можа забяспечыць. 

Гэта паведамленне ў блогу служыць як аб'яву аб праекце, а таксама заклік да добраахвотнікаў.  Калі вы зацікаўлены ў працы над гэтым праектам, дайце мне ведаць па электроннай пошце (galvin.paul @ gmail.com) і мы ўсе ўладзілі.

Вось праект: http://sp2010explorer.codeplex.com/

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Праца з TreeNodeBinding ў Treeview кіравання ASP.NET

I’ve been working on what I hope will be a soon-released CodePlex project that provides a nice integrated bit of web parts talking to each other via provider/consumer connections for the purpose of exploring a SharePoint site under the covers.  (Гэта, безумоўна, было зроблена раней, but this is a learning project as much as anything else).  This is meant to be a replacement for the windows explorer view of SharePoint 2010 бібліятэках дакументаў.

The code has the usual recursive call down the SPWeb’s and SPLists from a given starting point.  The object that does all that traversing builds up an XML string that looks something like this:

<sitecollection url=’HTTP://demo2010a:9090′>
 
<web
     title=’Hello World Sandbox’ 
     Template=’A site for teams to quickly organize, author, and share information, BLAH BLAH BLAH’>

     <list
        title=’BCC_Health_Services_FAQs’
        Template=’CustomList’
       
listid=’HTTP://demo2010a:9090/helloworldsandbox[delim]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
    
</list>

     <list
        title=’BCC_Notifications’ 
        Template=’CustomList’ 
        listid=’
HTTP://demo2010a:9090/helloworldsandbox[delim]5a5a13d1-877c-41c0-9063-b9612be80d5e’>
     </list>

  </web>

</sitecollection>

I expect to clean up that XML before all is said and done.

I want to ultimately get that information up and into a Treeview control.  Not exactly earth shattering stuff.

The challenge I took on here was to connect the tree view to an XML Data Source control instead of manually building up my treenodes as I traverse the tree.  I did this partly because I’m deliberately making things harder on myself (this is a learning project after all) and partly because I have this vague notion that building up tree nodes as I traverse the tree isn’t a good idea for the long term.

The problem with this approach is that the Treeview control doesn’t know about the good attributes on the interesting nodes like “list” or “web” so it shows this output by default:

 

image

That’s not useful.  This is where the TreeNodeBinding class helps.  I can use this to tell the Treeview control how it should interpret the XML.  Вось прыклад:

tnb = new TreeNodeBinding();
tnb.DataMember = "list"; // This is the label in the xml for a site.
tnb.TargetField = "listid";
tnb.ValueField = "title";
tnb.ToolTipField = "Template";

This binding tells the treeview that when it finds a <list> node in the XML, apply the bindings for TargetField, ValueField and ToolTipField.  In may app, these map as follows:

  • TargetField: When someone clicks on a node value, this is what you’ll get for SelectedNode.Value.  This is not to be confused with…
  • ValueField: This is what you want the Treeview to display to the user.
  • ToolTipField: The value from the XML that you want as a Tooltip.

Add that TreeNodebinding to the tree view’s DataBindings and you get output like this:

 

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

Хутка і лёгка: Адправіць Электронная пошта 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 ID]", "[Мой пароля Gmail]");
MailMessage MSG = новы MailMessage();
msg.From = новы MailAddress("[M Gmail Id]@ Gmail.com");
msg.To.Add(новы MailAddress("paul.galvin@arcovis.com"));
msg.Subject = "Test infopath dev subject";
msg.Body = "<HTML><цела><моцны>Моцны паведамленні.</моцны></цела></HTML>";
msg.IsBodyHtml = праўда;

Еогеасп (радок 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 ID пазбаўлены "@ 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. "C:\temp\attachment1.jpg”. In my test, У мяне было два ўкладанні, і яны абодва добра працавалі.

Я выкарыстаў Visual Studio 2008 пісаць гэты код.

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

Technorati Тэгі: ,,,