वर्ग पुरालेख: SharePoint विकास

"प्रकार ठीक से स्थापित नहीं कर रहे हैं एक या एक से अधिक फ़ील्ड के लिए एक कारण”

मैं एक छोटी सी tweak कल एक सूची के खिलाफ एक CAML क्वेरी करता है एक वेब भाग के लिए कर रहा था।  मैं बदल दिया, और यह तैनात एक त्रुटि के साथ मारा गया:

तीन दिन Outlook मौसम पूर्वानुमान WebPart में कोई अनपेक्षित त्रुटि उत्पन्न हुई. कृपया सिस्टम व्यवस्थापक से संपर्क करें. एक या अधिक फ़ील्ड प्रकार ठीक से स्थापित नहीं हैं. इन फ़ील्ड्स को हटाने के लिए सूची सेटिंग्स पृष्ठ पर जाएँ.

तो मैं तुरंत मेरी CAML क्वेरी से कनेक्ट SharePoint मुझे करने के लिए रिपोर्टिंग था त्रुटि के साथ नहीं था मैं पहले एक और oddball मुद्दे का सामना था।  मैं एक त्वरित बिंग खोज किया था और और यह उपयोगी ब्लॉग पोस्ट पाया द्वारा संदीप नाहटा  (http://snahta.blogspot.com/2009/01/one-or-more-field-types-are-not.html).

यहाँ बुरा क्वेरी है:

क्वेरी।क्वेरी ="<जहाँ><और><Neq><FieldRef नाम 'Abbr' = /><मान प्रकार = 'पाठ'>SFNY</मान><FieldRef नाम 'Abbr' = /><मान प्रकार = 'पाठ'>SFIS</मान></Neq></और></जहाँ>";

यहाँ यह तय हो गई है:

क्वेरी।क्वेरी ="<जहाँ><और><Neq><FieldRef नाम 'Abbr' = /><मान प्रकार = 'पाठ'>SFNY</मान></Neq><Neq><FieldRef नाम 'Abbr' = /><मान प्रकार = 'पाठ'>SFIS</मान></Neq></और></जहाँ>";

तो, कहानी का नैतिक है: सुनिश्चित करें कि आपके CAML सही है या आप एक oddball त्रुटि मिल सकती है.

मेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

</अंत>

SharePoint 2010 समाधान अटक गया "में तैनाती” स्थिति

मैं एक समाधान एक SharePoint खेत को परिनियोजित करने के लिए PowerShell उपयोग किया (एच/टी:  कोरी Roth और उसकी ब्लॉग पोस्ट). 

मैं फिर केंद्रीय व्यवस्थापक करने के लिए चला गया, सिस्टम सेटिंग्स और उसके बाद "प्रबंधित खेत समाधान" पहुँचा यह करने के लिए और खेत को परिनियोजित करने के लिए मेरी (थोड़ा सा) निराशा, यह अटक गया "वितरित करने".

मैं इस मुद्दे के ऊपर MSDN फ़ोरमों पर कई बार आ देखा है, तो मैं इसके बारे में बहुत नर्वस थी।  मैं थोड़ा के आसपास खोज की और इस मददगार लेख पाया (से एक कदाचित unattributed व्यक्ति द्वारा http://www.resolutionsnet.co.uk/).  मैं रद्द की तैनाती का काम और जब मैं समाधान में क्लिक, यह मुझसे कहा था कि इसे सफलतापूर्वक समाधान तीन खेत में चार सर्वरों के लिए तैनात था कि.

मैं गुमराह सर्वर करने के लिए चला गया, टाइमर सेवा बंद कर दिया और इसे पुनर्प्रारंभ।  Windows सर्वर वास्तव में मुझसे कहा कि सेवा आदेश के लिए प्रतिसाद करने में विफल रहा, इतना कि मुझसे कहता है कि यह बीमार हो गया था.

इस बार, जब मैं वापस चला गया करने के लिए केंद्रीय व्यवस्थापक, मैं यह कोई समस्या नहीं के साथ तैनात करने में सक्षम था.

उम्मीद है कि जानकारी के इस बिट एक बाँध के दिनों में कुछ मदद मिलेगी.

</अंत>

मेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

दिन की त्रुटि: "निर्दिष्ट असेंबली GAC को जोड़ नहीं कर सकता”

मैं थोड़ा सा दृश्य स्टूडियो के साथ लड़ रहा है 2010 पर एक एक sp2010 समाधान और इस त्रुटि हो रही थी:

परिनियोजन 'समाधान जोड़ें' चरण में त्रुटि उत्पन्न हुई: त्रुटि: निर्दिष्ट असेंबली वैश्विक असेंबली कैश करने के लिए जोड़ नहीं कर सकता: YourAwesomeDLLThat IAmJustNotGoingToInstallRightNow.dll

मैं GAC के लिए चला गया (ग:\windowsassembly) करने के लिए प्रयास करें और निकालें और एक "फ़ाइल उपयोग में है" त्रुटि मिल गया.

मैं कोई iisreset किया, मैं लगभग डाउनलोड sysinternals, मैं.. सेवाओं में टाइमर सेवा बंद कर दिया अंत में, मैं तो बस बंद कर दिया और दृश्य स्टूडियो ही फिर से खोल दिया और मैं अंत में इसे बंद कर बाहर करने में सक्षम था.

</अंत>

मेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

त्वरित और आसान: डिबगिंग बनाम 2010 समाधान परिनियोजन

दृश्य स्टूडियो 2010 डीबग करने के लिए हार्ड त्रुटियाँ परिनियोजन के दौरान कुछ टाइम्स की रिपोर्ट।  एक त्वरित और आसान तरीका है कुछ बहुत ही किसी न किसी डीबगिंग करने के लिए अपने ही नामांकित अपवाद फेंक करने के लिए है।  दृश्य स्टूडियो उन्हें आउटपुट कंसोल में दिखाएगा.

कोड के इस बिट पर विचार:

image

यदि इस सुविधा के लिए एक वेब अनुप्रयोग scoped है, साइट बातिल हो जाएगा।  अगर तुम कोशिश करो और एक संपत्ति स्थल का संदर्भ, अस्पष्ट त्रुटि प्राप्त करेंगे:

परिनियोजन 'समाधान जोड़ें' चरण में त्रुटि उत्पन्न हुई: किसी ऑब्जेक्ट की आवृत्ति के लिए सेट नहीं ऑब्जेक्ट संदर्भ.

हालांकि, यदि एक नया अपवाद फेंक और एक स्ट्रिंग को निर्माता के पास, आप एक थोड़ा और अधिक उपयोगी संदेश प्राप्त:

image

यह एक तकनीक के कच्चे तेल है, लेकिन बहुत तेजी से और आसान.

</अंत>

मेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

टाइमर नौकरी FeatureActivated और सुविधा गुंजाइश

मैं कुछ कोड है कि किसी ने मुझे करने के लिए एक टाइमर नौकरी के लिए सौंप दिया साथ काम कर रहा है।  तो मैं इसे लिखने के लिए किया था वह वास्तविक सुविधा सक्रियण कोड प्रदान नहीं था, बेशक.  मैं का फायदा उठाया एंड्रयू Connell प्रसिद्ध ब्लॉग पोस्ट इस विषय पर.

मैं दृश्य स्टूडियो उपयोग कर रहा हूँ 2010 और परिनियोजन "'जोड़ें समाधान' परिनियोजन चरण में त्रुटि उत्पन्न हुई एक त्रुटि के साथ failing रखा: ऑब्जेक्ट संदर्भ ऑब्जेक्ट की आवृत्ति के लिए सेट नहीं."

मैं अपने कोड भी शाब्दिक ले जा रहा था।  मैं इस सुविधा से वेब अनुप्रयोग स्तर scoping था, के रूप में दिखाया गया:

image

एक परिणाम के रूप में, वेब अनुप्रयोग से गुण है कि रिसीवर के लिए भेजा जाता हैं, नहीं एक साइट संग्रह।  अंत में, कोड इस तरह दिखता है:

जनता को ओवरराइड शून्य FeatureActivated(SPFeatureReceiverProperties गुण)
{

    // वेब अनुप्रयोग scoped सुविधाओं के साथ निम्नलिखित मत करो, यह निराशा की ओर जाता है मुस्कुराओ
    // SPSite साइट गुण =।Feature.Parent SPSite के रूप में;

    SPWebApplication वा = गुण।Feature.Parent SPWebApplication के रूप में;

    अगर (वा null = =) नया अपवाद फेंक("webapp2 बातिल है।");

    foreach (SPJobDefinition wa में नौकरी।JobDefinitions)
    {

        प्रयास करें
        {
            अगर (नौकरी।नाम List_JOB_NAME = =)

                नौकरी।हटाएँ();
        }
        पकड़ो (अपवाद ई)
        {
            नया अपवाद फेंक("मार्कर 2");
        } // अपवाद ई को पकड़ने
    }

    // नौकरी स्थापित करें

    WeatherForecastTimerJob weatherForecastTimerJob =
        नया WeatherForecastTimerJob(List_JOB_NAME, wa);

    SPMinuteSchedule अनुसूची नई SPMinuteSchedule =();
    अनुसूची।BeginSecond = 0;
    अनुसूची।EndSecond = 59;
    अनुसूची।अंतराल = 5;
    weatherForecastTimerJob.Schedule = अनुसूची;
    weatherForecastTimerJob.Update();

}

जब सुविधा के लिए एक वेब अनुप्रयोग scoped है कि चाबी लेने दूर है, SPFeatureReceiverProperties कि SharePoint करने के लिए अपने फ़ीचर पानेवाला गुजरता वेब app तर पैरामीटर है।  यह साइट संग्रह के लिए scoped है एंड्रयू पुराने ब्लॉग प्रविष्टि मान लिया गया.

</अंत>

मेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

Microsoft.SharePoint.ApplicationPages.Administration.dll कहाँ है?

मैं एक दृश्य स्टूडियो परियोजना है कि Microsoft.SharePoint.ApplicationPages.Administration.dll को संदर्भित सौंप दिया गया था।  यह और मैं लगा खोजने के लिए मैं हिस्सा होता है, जबकि यह मुझे थोड़ा सा लिया।  मेरे वातावरण में, यह स्थित है:

ग:\प्रोग्राम प्रोग्राम filesmicrosoft sharedweb सर्वर extensions14configadminbin

</अंत>

मेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

CodePlex परियोजना – SP2010 एक्सप्लोरर

SharePoint के तकनीकी कम तर विवरण जानने के लिए चल रहे प्रयास के भाग के रूप में 2010, मैं बना लिया है एक "SharePoint एक्सप्लोरर"उपकरण की तरह।  विचार नया नहीं है।  मैं इस परियोजना के एक से अधिक बार इस्तेमाल किया: http://sharepointexplorer.codeplex.com/.  मेरा विचार है कि का उपयोग करता है कि ऑब्जेक्ट मॉडल प्रदान कर सकते हैं सभी निम्न स्तर विवरण दिखाएँ करने के लिए वेब पार्ट्स कनेक्ट एक SharePoint संस्करण बनाने के लिए है। 

इस ब्लॉग पोस्ट के लिए स्वयंसेवक के रूप में अच्छी तरह से एक फोन परियोजना दोनों एक घोषणा के रूप में कार्य करता है।  यदि आप इस परियोजना पर काम करने रुचि रखते हैं, मुझे पता है कि ईमेल के माध्यम से (galvin.paul@gmail.com) और हम यह काम से बाहर हूँ.

यहाँ परियोजना है: http://sp2010explorer.codeplex.com/

</अंत>

मेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

ASP.NET Treeview नियंत्रण में TreeNodeBinding के साथ कार्य करना

मैं क्या मुझे आशा है कि एक जल्द ही जारी हो जाएगा पर काम कर रहा है CodePlex परियोजना है कि एक-दूसरे को कवर के अंतर्गत एक SharePoint साइट पर खोज के उद्देश्य के लिए प्रदाता/उपभोक् ता कनेक्शंस के जरिए बात कर वेब पार्ट्स का एक अच्छा एकीकृत सा प्रदान करता है।  (यह निश्चित रूप से पहले किया गया है, लेकिन यह एक सीखने परियोजना के रूप में ज्यादा के रूप में कुछ और है).  यह करने के लिए windows explorer दृश्य SharePoint के लिए एक प्रतिस्थापन होती है 2010 दस्तावेज़ लायब्रेरीज़.

हमेशा की तरह रीकर्सिव कॉल SPWeb नीचे कोड है और SPLists किसी दिए गए शुरू करने से इंगित करें।  एक XML स्ट्रिंग है जो कुछ इस तरह लग रहा है कि करता है कि सभी traversing ऑब्जेक्ट बनाता है:

<sitecollection url =’http://demo2010a:9090′>
 
<वेब
     शीर्षक = 'नमस्ते विश्व Sandbox' 
     टेम्पलेट =' जल्दी से व्यवस्थित करने के लिए टीमों के लिए एक साइट, लेखक, और जानकारी साझा करें, ब्ला ब्ला ब्ला '>

     <सूची
        शीर्षक ='BCC_Health_Services_FAQs’
        टेम्पलेट ='CustomList’
       
listid =’http://demo2010a:9090/helloworldsandbox[delim]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
    
</सूची>

     <सूची
        शीर्षक 'BCC_Notifications' = 
        टेम्पलेट 'CustomList' = 
        listid =’
http://demo2010a:9090/helloworldsandbox[delim]5a5a13d1 - 877c - 41 सी 0-9063-b9612be80d5e’>
     </सूची>

  </वेब>

</sitecollection>

मैं कि अप सब पहले XML कहा और किया है साफ करने के लिए उम्मीद.

मैं अंततः ऊपर और एक Treeview नियंत्रण में उस जानकारी को प्राप्त करने के लिए चाहते हैं।  नहीं बिल्कुल टूट सामान पृथ्वी.

ट्री दृश्य के रूप में मैं पेड़ ट्रैवर्स करें मैन्युअल रूप से अप मेरे treenodes के निर्माण के बजाय एक XML डेटा स्रोत नियंत्रण करने के लिए कनेक्ट करने के लिए चुनौती मैं यहाँ पर ले लिया था।  मैंने यह किया क्योंकि आंशिक रूप से मैं जानबूझ कर बातें अपने आप पर कठिन बना रहा हूँ (यह एक सीखने परियोजना सब के बाद है) और आंशिक रूप क्योंकि मैं इस अस्पष्ट धारणा है कि लंबे समय के लिए एक अच्छा विचार नहीं है के रूप में मैं पेड़ ट्रैवर्स ट्री नोड्स ऊपर इमारत.

तो यह डिफ़ॉल्ट रूप से इस आउटपुट दिखाता है Treeview नियंत्रण "सूची" या "वेब" की तरह दिलचस्प नोड्स पर अच्छा विशेषताओं के बारे में पता नहीं है कि इस दृष्टिकोण के साथ समस्या है:

 

image

कि उपयोगी नहीं है।  इस जहां TreeNodeBinding वर्ग में मदद करता है।  मैं यह कैसे यह XML की व्याख्या करना चाहिए Treeview नियंत्रण बता करने के लिए उपयोग कर सकते हैं।  यहाँ एक उदाहरण है:

tnb नई TreeNodeBinding =();
tnb.DataMember = "सूची"; // यह एक साइट के लिए xml में लेबल है.
tnb.TargetField = "listid";
tnb.ValueField = "शीर्षक";
tnb.ToolTipField = "टेम्पलेट";

जब यह पाता है यह बाध्यकारी treeview कि बताता है एक <सूची> में XML नोड, TargetField के लिए बाइंडिंग लागू करें, ValueField और ToolTipField.  मई app में, ये निम्नानुसार मैप:

  • TargetField: जब किसी एक नोड मान पर क्लिक, यह है क्या तुम SelectedNode.Value के लिए मिल जाएगा।  इस के साथ भ्रमित होने की नहीं है...
  • ValueField: यह क्या आप Treeview है उपयोगकर्ता के लिए प्रदर्शित करना चाहते है.
  • ToolTipField: मान एक टूलटिप के रूप में इच्छित XML से.

जोड़ें TreeNodebinding ट्री दृश्य DataBindings और आप को इस तरह आउटपुट मिलता है:

 

image

जैसा कि मैंने इस परियोजना को जारी रखने और अंततः इस Codeplex पर डाल दिया मैं यह सब पर अधिक करनी होगी.

</अंत>

मेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

पाठ फ़ील्ड फ़िल्टर आपके कस्टम वेब पार्ट से कनेक्ट कर रहा है

मैं SharePoint में एक पाठ फ़ील्ड फ़िल्टर से जानकारी प्राप्त करना चाहता था 2010 मेरे कस्टम वेब पार्ट में।  मैं का उपयोग करने की कोशिश की यह MSDN आलेख लेकिन लेख एक आधार के रूप में या तो टूटा है या मैं यह सही ढंग से न सिर्फ पीछा कर रहा हूँ.

एक छोटे और अधिक खोज बदल दिया माइक स्मिथ MSDN योगदान यहाँ (http://social.msdn.microsoft.com/forums/en-us/sharepointdevelopment/thread/72F1732A-7F93-441E-8644-2E82BBB153D9).

कनेक्शनयोग्य वेब पार्ट्स पर वहाँ सामान का एक बहुत कुछ है, लेकिन माइक का आलेख के रूप में सरल रूप में यह हो जाता है.

</अंत>

मेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

त्वरित और आसान: जीमेल एसएमटीपी सर्वर .NET C# में का प्रयोग ईमेल भेजें

यह बिल्कुल एक नया विषय नहीं है, लेकिन जब मैं इसे करने की जरूरत, मैं "यह मेरे लिए काम क्यों नहीं होगा" का एक बहुत कुछ पाया और बहुत अधिक नहीं सीधा जवाब. मुझे आशा है कि किसी को यह उपयोगी पाता है.

कोड की निम्न बिट यह मेरे अपने जीमेल खाते का उपयोग कर एक ईमेल भेज देंगे, अनुलग्नकों सहित:

का उपयोग कर System.Net.Mail;
का उपयोग कर System.Net;

NetworkCredential loginInfo = नई NetworkCredential("[मेरी जीमेल ID]", "[मेरे Gmail पासवर्ड]");
MailMessage msg = नई MailMessage();
msg.से = नई MailAddress("[मी Gmail Id]@gmail.com");
msg.To.Add(नई MailAddress("paul.galvin@arcovis.com"));
msg.विषय = "परीक्षण infopath देव विषय";
msg.शरीर = "<html><शरीर><मजबूत>एक मजबूत संदेश।</मजबूत></शरीर></html>";
msg.IsBodyHtml = सच है;

foreach (स्ट्रिंग aFile में NIPFD.GetAttachmentNamesAndLocations())
{
    msg.Attachments.Add(नई अनुलग्नक(aFile));
} // अनुलग्नकों को जोड़ने.

SmtpClient क्लाइंट = नई SmtpClient("smtp.gmail.com");
क्लाइंट।EnableSsl = सच है;
क्लाइंट।UseDefaultCredentials = झूठी;
क्लाइंट।साख = loginInfo;
क्लाइंट।पोर्ट = 587;
क्लाइंट।EnableSsl = सच है;
क्लाइंट।भेजें(msg);

कुछ महत्वपूर्ण बिट्स कि मुझे धीमा नीचे यातायात और अन्य टिप्पणियों / नोट्स:

  • पहली पंक्ति है कि loginInfo ऑब्जेक्ट बनाता है ID के छीन लिया gmail का उपयोग करने के लिए की जरूरत है "@gmail.com”. तो, अगर मेरे जीमेल ईमेल पता है "sharepoint@gmail.com"और मेरे कूटशब्द"xyzzy"फिर रेखा की तरह लग रही होगी है:

NetworkCredential loginInfo = नई NetworkCredential("sharepoint", "xyzzy");

  • मेरे जीमेल खाते SSL का उपयोग करने के लिए सेट है और कि कोई समस्या नहीं थी.
  • वहाँ वहाँ से बाहर का उपयोग करने के लिए किस पोर्ट पर कुछ परस्पर विरोधी जानकारी है. मैं पोर्ट का उपयोग किया 587 और यह मेरे लिए ठीक काम किया.
  • मेरे मामले में, मैं भी अनुलग्नक भेजने के लिए की जरूरत है. एक तरीका है कि जहाँ मेरे अनुलग्नक हैं जानता है कि NIPFD वस्तु है. यह एक पूरी तरह से पथ लौट रहा है (जैसे. "ग:\tempattachment1.jpg". मेरी परीक्षा में, मैं दो संलग्नक था और वे दोनों ठीक काम किया.

मैं दृश्य स्टूडियो उपयोग किया 2008 इस कोड लिखने के लिए.

</अंत>

मेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

Technorati टैग: ,,,