Arkivat e Kategorisë: SharePoint Zhvillim

Një arsye për "një apo më shumë lloje të terrenit nuk janë instaluar siç duhet”

Unë kam qenë duke bërë një shkulje të vogël dje në një pjesë të internetit që bën një pyetje CAML kundër një listë.  Kam bërë ndryshimin, vendosur atë dhe u godit me një gabim:

Një gabim i papritur ka ndodhur në tre Outlook Dita WebPart Weather Forecast. Ju lutem kontaktoni administratorin e sistemit. Një ose më shumë lloje fushë nuk janë instaluar siç duhet. Shko tek faqja settings lista të fshini këto fusha.

Unë u përballur me një çështje tjetër oddball herët kështu që unë nuk menjëherë lidheni pyetjen time CAML me gabimit që SharePoint ishte raportimi për mua.  Unë bëra një kërkim të shpejtë dhe të Bing dhe gjetur këtë post të dobishme blog nga Sandeep Nahta  (http://snahta.blogspot.com/2009/01/one-or-more-field-types-are-not.html).

Here is the bad query:

query.Query = "<Ku><Dhe><Neq><FieldRef Name=’Abbr’/><Value Type=’Text’>SFNY</Vlerë><FieldRef Name=’Abbr’/><Value Type=’Text’>SFIS</Vlerë></Neq></Dhe></Ku>";

Here it is fixed:

query.Query = "<Ku><Dhe><Neq><FieldRef Name=’Abbr’/><Value Type=’Text’>SFNY</Vlerë></Neq><Neq><FieldRef Name=’Abbr’/><Value Type=’Text’>SFIS</Vlerë></Neq></Dhe></Ku>";

Kështu, the moral of the story is: make sure your CAML is correct or you may get an oddball error.

Abonohen në blogun tim.

Atëherë ejani pas meje në Twitter në http://www.twitter.com/pagalvin

</fund>

SharePoint 2010 Zgjidhja Mbërthyer në "Dërgimi” Statusi

I përdorur për PowerShell për të vendosur një zgjidhje për një fermë SharePoint (h / t:  Corey Roth dhe i tij blog post). 

Unë pastaj shkoi në admin qendrore, arrihen parametrat e sistemit dhe pastaj "Manage fermë zgjidhje" për të vendosur atë në fermë dhe për të tim (i lehtë) lebetit, ajo mori mbërthyer në "vendosjen".

Unë e kam parë këtë çështje të dalë shumë herë në forume MSDN, kështu që unë kam qenë mjaft nervoz në lidhje me të.  Unë kontrolloi rreth një grimë dhe gjetur këtë artikull të dobishme (nga një person në dukje paatribuara nga http://www.resolutionsnet.co.uk/).  Unë anuluar punën vendosjen dhe kur unë klikuar në zgjidhje, ajo më tha se ajo kishte vendosur me sukses zgjidhjen e tre prej katër servers në fermë.

Unë shkova në server endacak, ndaluan shërbimin e timer dhe rifilluar atë.  Windows Server fakt më tha se shërbimi nuk përgjigjet për komandën, në mënyrë që tregon mua se ajo ishte e sëmurë.

Këtë herë, kur shkova përsëri në admin qendrore, Unë kam qenë në gjendje për të vendosur atë me asnjë problem.

Shpresojmë se kjo pak info do të ndihmojë disa në një të lidhnin të ditëve.

</fund>

Abonohen në blogun tim.

Atëherë ejani pas meje në Twitter në http://www.twitter.com/pagalvin

Gabim e ditës: "Nuk mund të shtoni Kuvendin specifikuara për GAC”

Unë kam qenë duke luftuar pak me vizual studio 2010 për një zgjidhje një sp2010 dhe ishte marrë këtë gabim:

Error occurred in deployment step ‘Add Solution’: Gabim: Nuk mund të shtoni asamblenë e specifikuar në cache globale kuvendit: YourAwesomeDLLThat IAmJustNotGoingToInstallRightNow.dll

Unë shkova në GAC vetë (c:\windows kuvendi) për t'u përpjekur dhe për të hequr dhe mori një skedar "në përdorim" gabim.

I bëri një iisreset, I shkarkuar pothuajse sysinternals, Unë u ndal shërbimin sahat në shërbimet e ... më në fund, Unë vetëm të mbyllur dhe rihapur vizual veten dhe unë kam qenë në fund në gjendje për të mbyllur atë.

</fund>

Abonohen në blogun tim.

Atëherë ejani pas meje në Twitter në http://www.twitter.com/pagalvin

Quick dhe Easy: Debugging VS 2010 Vendosja Zgjidhja

Visual Studio 2010 Raportet e vështirë të korrigjoj gabimet gjatë vendosjes disa herë.  Një mënyrë e shpejtë dhe e lehtë për të bërë disa debugging shumë i përafërt është që të hedhin përjashtime emrin tuaj.  Visual Studio do të tregojnë ato në tastierë prodhimit.

Konsideroni këtë grimë të kodit:

image

Në qoftë se ky tipar është scoped për një aplikim të internetit, faqe do të jetë e pavlefshme.  Nëse ju provoni dhe referencë një pronë e faqes, ju do të merrni gabim paqartë:

Error occurred in deployment step ‘Add Solution’: Object reference nuk është caktuar për një shembull të një objekti.

Megjithatë, Nëse hedhin një përjashtim të ri dhe të kalojë një varg të konstruktori, ju merrni një mesazh paksa më të dobishme:

image

Kjo është një teknikë e papërpunuar, por goxha shpejt dhe lehtë.

</fund>

Abonohen në blogun tim.

Atëherë ejani pas meje në Twitter në http://www.twitter.com/pagalvin

Job Timer FeatureActivated dhe Fushëveprimi Feature

Unë kam qenë duke punuar me disa kodin që dikush dorëzuar për mua një punë timer.  Ai nuk kishte dhënë aktuale aktivizimin kodin tipar kështu që unë kam për të shkruar atë, natyrisht.  I took advantage of Andrew Connell’s famous blog post on the subject.

Unë jam duke përdorur Visual Studio 2010 and deployment kept failing with an error “Error occurred in deployment step ‘Add Solution’: Object reference not set to an instance of an object.”

I was taking his code too literally.  I was scoping the feature to the web application level, siç tregohet:

image

Si rezultat, the properties that are sent to the receiver are from the web application, not a site collection.  Në fund, the code looks like this:

public override void FeatureActivated(SPFeatureReceiverProperties properties)
{

    // Don’t do the following with web app scoped features, it leads to despair buzëqeshje
    // SPSite site = properties.Feature.Parent as SPSite;

    SPWebApplication wa = properties.Feature.Parent as SPWebApplication;

    nëse (wa == null) throw new Exception("webapp2 is null.");

    foreach (SPJobDefinition job in wa.JobDefinitions)
    {

        mundohem
        {
            nëse (job.Name == List_JOB_NAME)

                job.Delete();
        }
        kap (Exception e)
        {
            throw new Exception("marker 2");
        } // catch exception e
    }

    // install the job

    WeatherForecastTimerJob weatherForecastTimerJob =
        new WeatherForecastTimerJob(List_JOB_NAME, wa);

    SPMinuteSchedule schedule = new SPMinuteSchedule();
    schedule.BeginSecond = 0;
    schedule.EndSecond = 59;
    schedule.Interval = 5;
    weatherForecastTimerJob.Schedule = schedule;
    weatherForecastTimerJob.Update();

}

The key take-away is that when the feature is scoped to a web app, the SPFeatureReceiverProperties that SharePoint passes to your feature receiver has web app level parameters.  Andrew’s old blog entry assumes it’s scoped to the site collection.

</fund>

Abonohen në blogun tim.

Atëherë ejani pas meje në Twitter në http://www.twitter.com/pagalvin

Ku është Microsoft.SharePoint.ApplicationPages.Administration.dll?

Unë iu dorëzua një projekt vizual studio që referencat Microsoft.SharePoint.ApplicationPages.Administration.dll.  Ajo mori mua një kohë pak për të gjetur atë dhe unë mendova se do të ndajnë.  Në mjedisin tim, Është e vendosur në:

c:\Program Files Common Files microsoft shared extensions web server 14 config adminbin

</fund>

Abonohen në blogun tim.

Atëherë ejani pas meje në Twitter në http://www.twitter.com/pagalvin

CodePlex Project – SP2010 Explorer

Si pjesë e një përpjekje të vazhdueshme për të mësuar detajet teknike të nivelit të ulët të SharePoint 2010, Unë kam krijuar një "SharePoint Explorer"Lloj mjeti.  Ideja nuk është e re.  I përdorur këtë projekt më shumë se një herë: http://sharepointexplorer.codeplex.com/.  Ideja ime është që të krijojë një version SharePoint që përdor pjesët lidhen web për të treguar të gjitha detajet e nivelit të ulët se modeli objekt mund të sigurojë. 

Ky blog post shërben edhe si një njoftim të projektit, si dhe një thirrje për vullnetarë.  Nëse jeni të interesuar për të punuar në këtë projekt, let me know me e-mail (galvin.paul gmail.com @) dhe ne do të punojmë atë.

Këtu është projekti: http://sp2010explorer.codeplex.com/

</fund>

Abonohen në blogun tim.

Atëherë ejani pas meje në Twitter në http://www.twitter.com/pagalvin

Duke punuar me TreeNodeBinding në Kontrollin Treeview ASP.NET

Unë kam qenë duke punuar në atë që unë shpresoj se do të jetë një lirua shpejt- CodePlex Projekti që ofron një grimë bukur integruar të pjesëve web folur me njëri-tjetrin nëpërmjet ofruesve / konsumator lidhjet për qëllim të eksploruar një vend SharePoint nën mbulon.  (Kjo sigurisht ka qenë bërë më parë, por ky është një projekt mësuar sa më shumë si çdo gjë tjetër).  Kjo është menduar të jetë një zëvendësim për Windows Explorer pamje e SharePoint 2010 bibliotekat dokument.

Kodi ka telefonatën e zakonshme gjithkund rekursive poshtë të SPWeb dhe SPLists nga një pikë e caktuar e fillimit.  Objekt që bën të gjithë traversing që ndërton një string XML që duket diçka si kjo:

<url = sitecollection’http://demo2010a:9090′>
 
<web
     title = 'Hello World sandbox' 
     Template = 'Një faqe për ekipet të shpejt të organizojnë, autor, dhe të ndajnë informacionin, Blah blah blah '>

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

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

  </web>

</sitecollection>

Unë pres për të pastruar atë XML para të gjitha është thënë dhe bërë.

Unë dua që përfundimisht të marrë këtë informacion dhe deri në një kontroll TreeView.  Jo tamam sende tokë shkatërrimtar.

Sfida e mora këtu ishte për të lidhur pamje pemë në një XML kontrollin e të dhënave burimore në vend të manualisht ndërtimin treenodes e mia si unë kaloj nëpër pemë.  Unë e bëri këtë pjesërisht për shkak se unë jam duke e bërë qëllimisht gjërat më të vështira mbi veten (ky është një projekt mësimin pas të gjithë) dhe pjesërisht për shkak se unë kam këtë nocion të turbullt se ndërtimi deri nyjet pemë si unë kaloj nëpër pemë nuk është një ide e mirë për afat të gjatë.

Problemi me këtë qasje është se kontrolli Treeview nuk e dinë në lidhje me atributet e mirë në nyjet interesante si "listë" apo "web", kështu që ajo tregon kete dalje nga default:

 

image

Kjo nuk është e dobishme.  Kjo është ajo ku klasa TreeNodeBinding ndihmon.  Unë mund të përdorni këtë për të treguar kontrollin Treeview se si ajo duhet interpretuar XML.  Ja një shembull:

TNB = new TreeNodeBinding();
tnb.DataMember = "list"; // Kjo është etiketë në XML për një faqe.
tnb.TargetField = "listid";
tnb.ValueField = "title";
tnb.ToolTipField = "Template";

Ky detyrueshme tregon Treeview se kur ajo gjen një <listë> Nyja në XML, aplikojnë për lidhjet TargetField, ValueField dhe ToolTipField.  Në maj app, Harta këto si vijon:

  • TargetField: Kur dikush klikimeve në një vlerë nyjen, kjo është ajo që ju do të merrni për SelectedNode.Value.  Kjo nuk duhet të ngatërrohet me ...
  • ValueField: Kjo është ajo që ju doni Treeview për të shfaqur për përdoruesit.
  • ToolTipField: Vlera nga XML që ju doni, si një Tooltip.

Shtoje që TreeNodebinding për DataBindings paraqitjes së degëzuar dhe që ju të merrni dalje si kjo:

 

image

Unë do të keni më shumë për të gjithë këtë si unë të vazhdojë në projekt dhe përfundimisht të vënë këtë deri në CodePlex.

</fund>

Abonohen në blogun tim.

Atëherë ejani pas meje në Twitter në http://www.twitter.com/pagalvin

Lidh Filters fushë teksti për Custom pjesën tuaj Web

Unë të kërkuar për të marrë informacion nga një filtër fushën e tekstit në SharePoint 2010 në porosi pjesën time të internetit.  Unë u përpoq duke përdorur ky artikull MSDN si një bazë, por artikulli është prishur ose unë nuk jam vetëm duke ndjekur atë saktë.

Një më pak në kërkim erdhën Mike Smith Kontributi MSDN këtu (http://social.msdn.microsoft.com/forums/en-us/sharepointdevelopment/thread/72F1732A-7F93-441E-8644-2E82BBB153D9).

Ka shumë gjëra atje në pjesët web Connectable por artikulli Mike është aq e thjeshtë sa ajo merr.

</fund>

Abonohen në blogun tim.

Atëherë ejani pas meje në Twitter në http://www.twitter.com/pagalvin

Quick dhe Easy: Dërgo email duke përdorur Gmail Server SMTP në. NET C #

Kjo nuk është saktësisht një temë të re, por kur unë e nevojshme për të bërë atë, I found a lot of “why won’t this work for me” and not too many direct answers. I hope someone finds this useful.

Bit e mëposhtme të kodit do të dërgoni një email duke përdorur vetë llogarinë time gmail për të bërë atë, duke përfshirë të bashkëngjitni skedarë:

përdorim System.Net.Mail;
përdorim System.Net;

NetworkCredential loginInfo = i ri NetworkCredential("[My Gmail ID]", "[My Gmail Password]");
MailMessage msg = i ri MailMessage();
msg.From = i ri MailAddress("[M Gmail Id]@gmail.com");
msg.To.Add(i ri MailAddress("paul.galvin@arcovis.com"));
msg.Subject = "Test infopath dev subject";
msg.Body = "<html><trup><strong>A strong message.</strong></trup></html>";
msg.IsBodyHtml = i vërtetë;

foreach (varg aFile NIPFD.GetAttachmentNamesAndLocations())
{
    msg.Attachments.Add(i ri Attachment(aFile));
} // Adding attachments.

SmtpClient client = i ri SmtpClient("smtp.gmail.com");
client.EnableSsl = i vërtetë;
client.UseDefaultCredentials = i rremë;
client.Credentials = loginInfo;
client.Port = 587;
client.EnableSsl = i vërtetë;
client.Send(msg);

A few key bits that slowed me down and other observations / notes:

  • The first line that creates the loginInfo object needs to use the gmail ID stripped of “@gmail.com". Kështu, if my gmail email address is “sharepoint@gmail.com” and my password is “xyzzy” then the line would look like:

NetworkCredential loginInfo = i ri NetworkCredential("sharepoint", "xyzzy");

  • My gmail account is set up to use SSL and that wasn’t a problem.
  • There is some conflicting information out there on what port to use. I used port 587 and it worked fine for me.
  • Në rastin tim, 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, I had two attachments and they both worked fine.

I used visual studio 2008 to write this code.

</fund>

Abonohen në blogun tim.

Atëherë ejani pas meje në Twitter në http://www.twitter.com/pagalvin

Technorati Tags: ,,,