मासिक अभिलेख: जनवरी 2008

यह है क्यों मैं की तरह का उपयोग कर उपकरण दिन शून्य नहीं

http://groups.google.com/group/microsoft.public.sharepoint.portalserver.development/browse_thread/thread/41e8cbe4f15e8b4c/76506ea401403e35?#76506ea401403e35

यदि उपकरण सामान कर रही है तुम समझते नहीं और फिर यह चरण में चरणों की एक अज्ञात संख्या के n विफल रहता है, तुम पानी में मर रहे हैं…

</अंत>

Technorati टैग:

BDC ADF आयात विफलता का समाधान: “निम्नलिखित त्रुटि उत्पन्न हुई:”

मैं एक बार फिर हाथ से BDC ADF फ़ाइलें क्राफ्टिंग था (इतना है कि मैं का निर्माण कर सकते हैं मेरी "मेरे लॉन बंद हो जाओ!" cred) और इस सुंदर त्रुटि को मारा:

छवि

"अनुप्रयोग परिभाषा आयात विफल रहा. निम्नलिखित त्रुटि उत्पन्न हुई:"

जैसा कि आप देख सकते हैं, वहाँ एक त्रुटि है, लेकिन … यह मुझे बताओ कि यह क्या है नहीं जा रहा है.

मेरे मामले में, इस मुद्दे से बाहर कर दिया कि मैं एक अलग परियोजना है कि एक डेटाबेस से कनेक्ट है और एक दृश्य के खिलाफ एक एसक्यूएल क्वेरी निष्पादित के लिए एक कार्यात्मक ADF के साथ शुरू था. इस नई परियोजना में, मैं एक विधि को किसी वेब सेवा पर बुला रहा हूँ. मैं बाहर DB विशिष्ट सामान छीन लिया था और मेरे वेब सेवा सामान जोड़ा, लेकिन अद्यतन करने में विफल रहा <LobSystem>के प्रकार विशेषता. मैं यह करने के लिए "WebService बंद" और मैं खुशी से करने के लिए नए और अधिक रोमांचक आयात त्रुटियों चले गए, जो कारण पाठ्यक्रम में संभाला रहे थे.

यहाँ गलत LobSystem है:

<LobSystem
xmlns:xsi =http://www.w3.org/ 2001/xml स्कीमा-उदाहरण
xsi:schemaLocation =http://schemas.microsoft.com/office/2006/03/BusinessDataCatalogBDCMetadata.xsd
प्रकार = "डाटाबेस"
संस्करण = "1.0.0.0" नाम = "xyzzy"
xmlns ="
http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">

यह सही है:

<LobSystem
xmlns:xsi =http://www.w3.org/ 2001/xml स्कीमा-उदाहरण
xsi:schemaLocation =http://schemas.microsoft.com/office/2006/03/BusinessDataCatalogBDCMetadata.xsd
प्रकार = "WebService"
संस्करण = "1.0.0.0" नाम = "xyzzy"
xmlns ="
http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">

</अंत>

Technorati टैग:

BDC Lookups के लिए एक व्यवहार्य प्रतिस्थापन लगता है

अद्यतन: उसका पर आधारित JXJ से कुछ रोचक टिप्पणियों इस MSDN पोस्टिंग है, मुख्य रूप से नकारात्मक, अनुभव के इस रास्ते नीचे जा रहा: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2623565&SiteID=1

हम एक व्यापार परिदृश्य है जहाँ हम दो दस्तावेज पुस्तकालयों एक आम "दस्तावेज़ ID के माध्यम से लिंक करने के लिए की जरूरत है" फ़ील्ड.

हम अक्सर इस तरह के औजार लिंक करने के लिए एक लुकअप स्तंभ का उपयोग करें. लुकअप स्तंभ के लिए कई कमियां हैं, जिसमें से तीन:

  1. केवल एक स्तंभ लुकअप लुकअप लायब्रेरी से लिंक किया जा सकता.
  2. प्रदर्शन: स्रोत लाइब्रेरी प्रविष्टियों के सैकड़ों हो सकता है. है कि लुकअप में बहुत अधिक प्रविष्टियाँ.
  3. खोज: वहाँ है कोई एकीकृत खोज. मैं खोज की काई अर्थ में मतलब नहीं, लेकिन खोज करने के लिए कोई रास्ता नहीं है / एकाधिक स्तंभों को स्रोत दस्तावेज़ लायब्रेरी से पर फ़िल्टर और लिंक आप चाहते हैं की स्थिति जानें.

BDC द्वारा समर्थित, हम एक "व्यवसाय डेटा का उपयोग कर सकते हैं" स्तंभ प्रकार है और यह एक बेहतर खोज प्रदान करता है और यहां तक कि सूची दृश्यों में दिखाई देते हैं करने के लिए डेटा की एकाधिक स्तंभ की अनुमति देता है.

मैं इस दृष्टिकोण के साथ कुछ प्रारंभिक सफलता मिली है और इसके बारे में और अधिक लिखने की योजना.

यदि आप इस कोण से पहले काम किया है और किसी भी टिप्पणी है, कृपया साझा करें!

</अंत>

Technorati टैग:

BDC आयात त्रुटि के लिए समाधान: “TypeDescriptor का TypeName द्वारा वर्णित प्रकार को लोड नहीं कर सका …”

मैं आज BDC के साथ काम कर रहा है, ADF फ़ाइलें कोडिंग के हाथ से और अपने आप को कुछ त्रुटियाँ जनरेट कर रहा है. इस तरह एक त्रुटि:

अनुप्रयोग परिभाषा आयात विफल रहा. निम्नलिखित त्रुटि उत्पन्न हुई: TypeDescriptor का TypeName द्वारा वर्णित प्रकार को लोड नहीं कर सका. पैरामीटर नाम: typeName त्रुटि पर या बस लाइन से पहले का सामना करना पड़ा था: ' 35’ और स्थिति: '20'.

काई इस त्रुटि प्रदर्शित जब मैं ADF XML फ़ाइल आयात करने की कोशिश की.

मैं Internets शोध किया और पाया कि मैं LOB इंस्टेंस नाम संदर्भित किया गया (से <LobSystemInstance>) में मेरे <TypeDescriptor> जब मैं LOB नाम संदर्भित है चाहिए नोड (से <LobSystem>).

गलत:

<TypeDescriptor TypeName="Conchango.KeyValue, LOB इंस्टेंस नाम" नाम "KeyValue" =>

को सही:

<TypeDescriptor TypeName="Conchango.KeyValue, LOB नाम" नाम "KeyValue" =>

आशा है कि यह एक किसी को एक घंटा या दो समय की बचत होती है.

</अंत>

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

Technorati टैग:

समस्या का समाधान: “FileNotFoundException” मेरी सुविधा रिसीवर के साथ.

मैं एक विशेषता है कि कुछ घटना रिसीवर एक विशिष्ट सूची इंस्टेंस के लिए जोड़ होगा पिछले सप्ताह पर काम कर रहा था. (मैं उस सूची यहाँ रिसीवर के बारे में थोड़ा blogged).

कमांड लाइन का उपयोग करना, मैं के साथ कोई त्रुटि इस सुविधा स्थापित कर सका (लेकिन नीचे छुपे हुए त्रुटि के लिए देखें). जब मैं साइट पर सुविधा को परिनियोजित करने के लिए करने की कोशिश की, एक "FileNotFoundException की काई की शिकायत" त्रुटि. इस ब्लॉग प्रविष्टि बताता है कि कैसे मैं इसे हल.

इस काई मेरे वेब ब्राउज़र में पता चला है कि त्रुटि है:

सुविधा ' b2cb42e3-4f0a-4380-aaba-1ef9cd526f20’ नहीं स्थापित किया जा सकता है क्योंकि घटना रिसीवर विधानसभा "xyzzyFeatureReceiver_0 की लोडिंग" में विफल रहा: System.IO.FileNotFoundException: फ़ाइल या असेंबली लोड नहीं कर सका ' xyzzyFeatureReceiver_0’ या इसके निर्भरताएँ में से एक. सिस्टम निर्दिष्ट फ़ाइल नहीं ढूँढ सकता.
फ़ाइल का नाम: ' xyzzyFeatureReceiver_0’
पर System.Reflection.Assembly.nLoad(AssemblyName फ़ाइल का नाम, स्ट्रिंग codeBase, प्रमाण assemblySecurity, विधानसभा locationHint, StackCrawlMark& stackMark, बूलियन throwOnFileNotFound, बूलियन forIntrospection)
पर System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, प्रमाण assemblySecurity, StackCrawlMark& stackMark, बूलियन forIntrospection)
पर System.Reflection.Assembly.InternalLoad(स्ट्रिंग assemblyString, प्रमाण assemblySecurity, StackCrawlMark& stackMark, बूलियन forIntrospection)
पर System.Reflection.Assembly.Load(स्ट्रिंग assemblyString)
पर Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
WRN: असेंबली बाइंडिंग लॉगिंग चालू है रवाना.
विधानसभा बाँध विफलता लॉगिंग को सक्षम करने के लिए, रजिस्ट्री मान को सेट करें [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) करने के लिए 1.
नोट: वहाँ कुछ प्रदर्शन विधानसभा बाँध विफलता लॉगिंग के साथ जुड़े जुर्माना है.
इस सुविधा को बंद करने के लिए, रजिस्ट्री मान निकालें [HKLMSoftwareMicrosoftFusion!EnableLog].

Windows SharePoint सेवाओं के साथ समस्याओं का निवारण.

मुझे पता कैसे जान-बूझकर उस त्रुटि का कारण: असेंबली GAC में स्थापित न करें. लेकिन, इसे GAC में था. मैं आम तौर पर असेंबलियों GAC में उन्हें में सी खींच कर स्थापित करें:\windowsassembly फ़ोल्डर windows explorer का उपयोग कर. मैं कभी नहीं महसूस किया है 100% आराम से कर रही है कि क्योंकि मैं हमेशा सोचा कि gacutil एक कारण के लिए अस्तित्व में … इसलिए मैंने कोशिश की है कि. यह कोई फर्क नहीं.

मैं Internets की खोज की और इस पोस्ट पाया: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1

पोस्टर कोड का एक ही जड़ सा प्रयोग किया हुआ (इस सूची से अंदर WSS किताब से) इतना था कि एक उम्मीद है साइन इन करें. हालांकि, विधानसभा के साथ सजाने का सुझाव एक [विधानसभा: ] निर्देशक भाव मुझे नहीं बना था. मैं यह वैसे भी करने की कोशिश की और मैं सही था. यह कोई फर्क नहीं.

तब मैंने देखा कि मेरे वर्ग परिभाषा सार्वजनिक नहीं था. मैं इसे सार्वजनिक कर दिया और जो कोई अंतर नहीं किया.

अगले, मैं "विधानसभा बाँध विफलता लॉग को सक्षम करने की मुसीबत के लिए चला गया" (उपयोगी और सटीक निर्देशों का पालन प्रदान की) और यह वह जगह है जहाँ बातें दिलचस्प मिल शुरू कर दिया. उस लॉग मुझे पता चलता है कि रनटाइम हर जगह मेरा विधानसभा के लिए उस सर्वर पर खोज रहा है. यह भी इसके लिए मेरी दवा कैबिनेट में खोज किया जा करने के लिए प्रकट होता है. लेकिन … यह इसके लिए GAC में खोज नहीं होगा.

मैं मेरे सर्दियों जैकेट पर डाल दिया और Internets खोज फिर से जाने और लगता कि किसी को भी इस समस्या थी गया है. कुछ भी नहीं है में बंद लंबी चर्चा कि पोस्टिंग में पीटर्स और मैं एक समाधान नहीं ढूँढ सकता.

मैं मेरा विधानसभा लॉग का दावा है कि यह खोज रहा है और मैं एक छोटे से अधिक प्रगति कर स्थानों में से एक में ले जाएँ. मैं इस सुविधा को सक्रिय करने का प्रयास करते समय मैं ब्राउज़र में एक नया त्रुटि के साथ पुरस्कृत कर रहा हूँ:

"XyzzyFeatureReceiver_0" विधानसभा से फ़ीचर पानेवाला ऑब्जेक्ट बनाने में विफल रहा, "Conchango.xyzzyFeatureReceiver टाइप" सुविधा b2cb42e3-4f0a-4380-aaba-1ef9cd526f20 के लिए: System.ArgumentNullException: मान रिक्त नहीं हो सकता.
पैरामीटर नाम: प्रकार
पर System.Activator.CreateInstance(प्रकार प्रकार, बूलियन nonPublic)
पर System.Activator.CreateInstance(प्रकार प्रकार)
पर Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()

Windows SharePoint सेवाओं के साथ समस्याओं का निवारण.

Internets के लिए एक अंतिम यात्रा के लिए समय!

मैं इस समय पता लगाना, जाहिर है पर्याप्त, मुद्दों कि काई इस त्रुटि क्योंकि असेंबली GAC में नहीं है.

मैं कुछ इस से बाहर सकारात्मक हो और मैं बना लिया है कि एक छोटे गर्व महसूस करने की कोशिश करना चाहते हैं MSIL विधानसभाओं का भगोड़ा, लेकिन यह काम नहीं कर रहा है. मैं सिर्फ सादा नाराज़ हूँ. मैं अपने आप को गुनगुन "चिकन या अंडा ढूँढना" मेरी सांस के तहत.

मैं अंत में बाज़ी करने का फैसला. मैं एक पूरी तरह से नया प्रोजेक्ट बनाएँ और इस नई परियोजना के लिए incredible-cloaked-from-the-GAC-assembly से अधिक गैर-कार्य परियोजना से कोड कॉपी/पेस्ट. (मैं एक बिल्ड असेंबली GAC में स्थापित तो बंधन से छुपाएँ"की तरह कुछ नामक ध्वज के लिए देखो" लेकिन एक मिल नहीं कर सकता).

मैं इस सुविधा को स्थापित और यह सक्रिय और … यह काम करता है! तो, उस सब के बाद, मैं मूल रूप से किया था ' रिबूट’ मेरी परियोजना. यह एक और कारण क्यों मैं कंप्यूटर से नफरत है.

मैं इस से उपयोगी कुछ सीख किया था. मैं सुविधाओं के सभी दिन लंबे समय stsadm आदेश पंक्ति का उपयोग किया गया था स्थापित करने और उपयोग कर रहा है "-बल" आदत से बाहर विकल्प. किसी कारण के लिए, मैं का उपयोग नहीं किया था जब मैं इस नई परियोजना स्थापित - बल विकल्प. इस बार, मैं वास्तव में किया था, सही मायने में इस नई परियोजना की असेंबली में GAC की प्रतिलिपि करने के लिए भूल जाते हैं. एक परिणाम के रूप में, मैं उस "FielNotFoundException प्राप्त" त्रुटि. इस बार, मेरे पास यह stsadm से, जब मैं वेब ब्राउज़र के माध्यम से इस सुविधा को सक्रिय करने की कोशिश की नहीं. तो, -बल वास्तव में दो भूमिकाएं निभाता. यह एक मौजूदा सुविधा को पुन: स्थापित करने के लिए आप की अनुमति देता है. यह भी कि रनटाइम पर काम नहीं कर सकते त्रुटि दबा द्वारा एक छोटी गाड़ी सुविधा को स्थापित करने के लिए आपको अनुमति देता है. यह शायद कहीं मदद में ज्यादा के रूप में कहते हैं, लेकिन मैंने कभी नहीं देखा है यह.

</अंत>

रविवार अजीब बात है: शीर्ष 10 अपनी पत्नी को परेशान करने के तरीके

  1. जब आप जानते हैं कि वहाँ पहले से ही फ्रिज में पर्याप्त से अधिक है ब्रोकोली खरीदें.
  2. एक रन के लिए जाओ. कूल. स्वच्छ तकिया मामले बंद रखना और टी शर्ट के साथ बदलें. स्वच्छ तकिया मामले के साथ कवर.
  3. जब गाड़ी चला, अगर हम गलत तरीका है एक तरह से सड़क नीचे जाना चाहिए पूछना.
  4. के लिए 15 साल, हर रविवार एक संग्रहालय के लिए जा रहा कि आप पत्नी से पता चलता है, संग्रहालयों रविवार पर खुली हैं आश्चर्य व्यक्त.
  5. के लिए 15 साल, कभी-कभी रविवार को स्थानीय बुक स्टोर के लिए जा रहा सुझाव है. वे रविवार को खुला नहीं कर रहे हैं कि आश्चर्य व्यक्त (बहुत-बहुत धन्यवाद ब्लू कानून!).
  6. का प्रयोग करें 20 अंक करने के लिए एक 3 बिंदु बारी.
  7. शीघ्र पतन की दोपहर पर एक शांत, कमरे में चलने के लिए और एक/c पर चालू करें. शिकायत है कि यह ठंडा है. जब पत्नी कहते हैं, "तो फिर क्यों तुम कि चालू किया, मूर्ख" और इसे बंद करने के लिए ऊपर हो जाता है, गर्म स्थान था वह सोफे पर ले लो. बोनस अंक अगर वह तुम्हें एहसास नहीं है यह बहुत बाद में जब तक था.
  8. स्वादिष्ट सफेद अल्बकोर ट्यूना की एक कर सकते हैं अप खोलें और इसे सीधे से कर सकते हैं खा, बिस्तर में, रात के समय.
  9. पत्नी रात का खाना खा रहा है, जबकि रसोई में जाओ, अप कटलरी दराज खोलने और बर्तन तक पत्नी चिल्लाती के आसपास पुश, "तुम्हारे लिए क्या देख रहे हैं!"
  10. नए व्यवसाय कार्ड की प्राप्ति पर, चुपके से उन्हें घर के आसपास सभी जगह: बिस्तर के नीचे, तकिया मामलों में, कॉफी कप के अंदर, उसके पर्स में, कोट जेब में, कार दस्ताने डिब्बों, कोठार — कहीं भी आप की सोच सकते हैं.
  11. अपनी पत्नी के बारे में प्रविष्टियों ब्लॉग लिखना.
  12. जागो.
  13. जब न्यूयॉर्क शहर की सड़कों पर घूमना, "crusty के लिए सतर्क होना" जमीन पर ऑब्जेक्ट्स. अपनी पत्नी की विशेष आशंका मन में रखते हुए, के रूप में अगर एक लेने के लिए पहुंच ऊपर ऊपर और पूछना, "हम्म, मुझे आश्चर्य है कि क्या यही है?" (शरीर को पत्नी स्लैम के लिए आप के रूप में अगर वह है एक सीक्रेट सर्विस एजेंट के राष्ट्रपति की सुरक्षा के एक स्नाइपर या आप से अपने आप को फुटपाथ पर अपनी पीठ पर बिछाने मिलेगा तैयार रहना).
  14. दो बार एक पार्किंग के लिए जगह की तलाश के आसपास ड्राइव. तुम्हें पता है कि तुम सच में जब अपने बेटे के पीछे की सीट में चिल्लाता पे गंदगी मारा है, "ओह नहीं! वह यह कर रही है पुन:!"
  15. लिखने के "शीर्ष 10" सूचियाँ कि ज़रूरत नहीं है 10 आइटम.

===

बोनस पत्नी मजाक:

दो पुरुष सह-कार्यकर्ताओं दोपहर के भोजन के लिए बाहर जाना. उनमें से एक अन्य बताता है, "मैं उस रात एक शर्मनाक Freudian पर्ची ढीले चलो।"

"एक Freudian पर्ची? वह क्या है?"

"अच्छी तरह से, जब हम खा चुका, वेट्रेस आया और पूछा कि कैसे हम हमारे भोजन पसंद आया. मेरा मतलब था कहना, ' मैं चिकन स्तन प्यार करता था’ लेकिन इसके बजाय मैंने कहा 'मैं अपने स्तनों पसंद था'. मैं इतना शर्मिंदा था।"

"आह," उसके सह कार्यकर्ता ने उत्तर दिया. "मैं एक ही बात मुझे मेरी पत्नी के साथ इस सप्ताहांत होने था. हम मैं उसे मक्खन से गुजारें के लिए पूछने का मतलब नाश्ता खा रहे थे, लेकिन इसके बजाय मैं उसे पर चिल्लाया, ' तुम मेरी जिंदगी बर्बाद कर दी!’"

</अंत>

Technorati टैग:

इवेंट ID 1023: “Windows एक्सटेंसिबल काउंटर DLL MSSCNTRS लोड नहीं कर सकता”

अद्यतन (04/08/08): मुझे लगता है इस समस्या का हल है. कमांड लाइन से, मैं "सी गई:\windowssystem32lodctr /R" InstallShield के बारे में बात कर एक प्रविष्टि के अनुसार समस्याओं और जो प्रकट होता है मेरे लिए यह हल है करने के लिए.

मैंने देखा है कि हाल ही में, मेरे डेस्कटॉप/सर्वर प्रशंसक कभी नहीं बंद करता है. मैं जानता हूँ कि इसे बंद करने के लिए इस्तेमाल किया. मैं एक पल के बाहर यह पाया है कि जाँच करने के लिए ले लिया एक VMware प्रक्रिया एक सुसंगत चल रहा था 20% पर एक CPU का उपयोग. मैं इवेंट लॉग की जाँच की और दर्जनों बार प्रति मिनट की हो रहा अनुप्रयोग लॉग इन त्रुटियों को देखा:

Windows एक्सटेंसिबल काउंटर DLL UGatherer लोड नहीं कर सकता, Windows त्रुटि कोड डेटा खंड में पहले DWORD है.

Windows एक्सटेंसिबल काउंटर DLL UGTHRSVC लोड नहीं कर सकता, Windows त्रुटि कोड डेटा खंड में पहले DWORD है.

Windows एक्सटेंसिबल काउंटर DLL MSSCNTRS लोड नहीं कर सकता, Windows त्रुटि कोड डेटा खंड में पहले DWORD है.

अगर मैं उन संदेशों में से एक की गहराई में ड्रिल, मैं इस मिल:

स्रोत: Perflib

प्रकार: त्रुटि

श्रेणी: कोई नहीं

इवेंट ID 1023

मैं कुछ शोध किया था और यह एक की अनुमति समस्या प्रश्न में DLLs के लिए उपयोग के मामले में हो सकता है के कुछ संकेत था. मैं उस सामान के साथ आसपास खेला लेकिन एक सकारात्मक रास्ते में बातें प्रभावित नहीं हो सकता तो मैं उस पर छोड़ दिया.

VMware मुझे काफी कुछ समय के लिए एक अद्यतन करने के बारे में सता रहा था, मैं स्थापित किया था ताकि मैं संस्करण नीचे लिख (जाहिरा तौर पर "1.0.1 29996 निर्माण") और अद्यतन किया. यह मुझे करने के लिए v 1.04 उन्नत किया. अफसोस की बात है, यह समस्या ठीक नहीं किया.

मैं अगर मैं नीचे एक सेवा "VMware प्राधिकरण सेवा" नामक बंद मेरी अनुप्रयोग लॉग करने के लिए जा रहे संदेश के पागल संख्या नहीं रोक सकता. यह मुझे VMware सॉफ्टवेयर का उपयोग करने से रोकता है, तो … नहीं ऐसी एक बढ़िया विकल्प.

होस्ट ऑपरेटिंग सिस्टम है Windows XP 64 बिट.

मुझे नहीं लगता कि यह हमेशा हुआ है, लेकिन मैं यह करने के लिए नेतृत्व किया है हो सकता है कोई विशेष घटना याद नहीं.

यह है क्यों मैं कंप्यूटर से नफरत है.

</अंत>

Technorati टैग:

त्वरित & आसान: अपलोड की गई एक घटना रिसीवर के माध्यम से SharePoint ऑब्जेक्ट मॉडल का उपयोग कर फ़ाइल का नाम बदलें

अद्यतन: यह काम करता है, लेकिन वहाँ जो टिप्पणी में वर्णित हैं महत्वपूर्ण सीमाएं हैं. यह अभी भी कुछ cirumstances में उपयोगी हो सकता है.

अद्यतन 2: मेरे वर्तमान परियोजना में, उपयोगकर्ताओं को हमेशा दस्तावेज़ अपलोड करें. एक परिणाम के रूप में, मैं कहाँ MS वर्ड चल रहा है और सोचता है कि फ़ाइल पर यह नाम दिया गया था एक समस्या में चला नहीं. मैं एक समस्या में चला था, "फ़ाइल किसी और द्वारा संशोधित किया गया" और यह एक सरल सिकंदरा प्रकार ध्वज के माध्यम से हल. एक मेटा डेटा फ़ील्ड के लिए कुछ और उसके डिफ़ॉल्ट मान से बदलने के लिए उपयोगकर्ताओं की आवश्यकता. Itemupdated() रिसीवर वास्तव में नाम बदलें प्रदर्शन कर रहा से पहले और उसके बाद से वहाँ कोई मान्य मान के लिए दिखता है, मैं किसी भी समस्याओं का नहीं था. आपका लाभ भिन्न हो सकते हैं.

मैं एक ग्राहक की आवश्यकता के अनुरूप के साथ एक विशेष सम्मेलन नामकरण किसी विशिष्ट दस्तावेज़ लायब्रेरी के लिए अपलोड की गई फ़ाइलों का नाम बदलने के लिए है. एपीआई एक "पुनर्नामित नहीं प्रदान करता है()" विधि. इसके बजाय, हम का उपयोग करें "MoveTo(…)". यहाँ इस को पूरा करने के लिए कोड की कम से कम थोड़ी है:

 सार्वजनिक ओवरराइड करें शून्य ItemAdded(SPItemEventProperties गुण)
        {
            SPFile f = गुण।ListItem.File;

            f.MoveTo(गुण।ListItem.ParentList.RootFolder.Url + "/xyzzy.doc");
            f.Update();

        }

केवल मुश्किल सा है "गुण। ListItem.ParentList.RootFolder.Url". MoveTo() विधि किसी URL की आवश्यकता है. कि स्ट्रिंग अंक ले मुझे मेरे वर्तमान दस्तावेज़ लायब्रेरी के रूट फ़ोल्डर में मसला हुआ. यह मुझे मेरी घटना रिसीवर में किसी भी हार्ड कोडिंग से बचने के लिए अनुमति देता है.

यह एक अधिक उपयोगी संस्करण है कि एक ही बात करता है, लेकिन "शीर्षक के लिए" फ़ाइल का नाम असाइन करता है:

 सार्वजनिक ओवरराइड करें शून्य ItemAdded(SPItemEventProperties गुण)
        {
            DisableEventFiring();

            // इस आइटम का शीर्षक स्वयं फ़ाइल के नाम को असाइन करें.
 // नोट: हम स्वयं फ़ाइल संशोधित करने से पहले इस असाइनमेंट जगह ले लेना चाहिए.
 // अद्यतन बुला() पर SPFile गुण में अमान्य करने लगता है
 // कुछ भाव.  "शीर्षक के लिए अद्यतन" जब तक कि बदलने में विफल रहा (और अद्यतन() कॉल)
 // परिवर्तन के सामने फ़ाइल नाम के लिए चले गए थे.
            गुण।ListItem["शीर्षक"] गुण =।ListItem.File.Name;

            गुण।ListItem.Update();

            SPFile f = गुण।ListItem.File;

            // फ़ाइल का एक्सटेंशन मिल.  हमें जरूरत है कि बाद में.
 स्ट्रिंग spfileExt = नई FileInfo(f.Name).एक्सटेंशन;

            // सूची आइटम ID करने के लिए फ़ाइल नाम बदलें और रखने के लिए फ़ाइल एक्सटेंशन का उपयोग करें
 // यह अक्षुण्ण का वह हिस्सा.
            f.MoveTo(गुण।ListItem.ParentList.RootFolder.Url +
                "/" + गुण।ListItem["आईडी"] + spfileExt);

            // हटो संकल्प लें.
            f.Update();

            EnableEventFiring();
        }

फोरम चर्चा: गैर तुच्छ काई पर्यावरण में सर्वोत्तम प्रथाओं अनुपालन लागू करने

एक साथी, "निशान", "उत्कृष्ट SharePoint शासन शुरू से स्थापना पर ध्यान केंद्रित कर एक संभावित दिलचस्प समाचार समूह चर्चा अप शुरू हो गया है" के लिए एक 35,000 उपयोगकर्ता वातावरण.

चर्चा यहाँ है: http://groups.google.com/group/microsoft.public.sharepoint.portalserver/browse_thread/thread/6d9a738d981af772/1c390b15c5407db6?#1c390b15c5407db6

से अधिक पर पॉप और योगदान!

</अंत>

कस्टम क्रिया URL नई सुविधा के लिए प्रदर्शित नहीं होगी

मैं अभी भी मेरी सुविधा XML फ़ाइलें crafting हाथ से के बाद से यह सब काफी मेरे लिए नया है की आदत में हूँ. मैं नहीं मुझे समझ नहीं आता कि क्या सामान एक front-end उपकरण पर भरोसा करना चाहते (उन्होंने कहा कि के रूप में वह वह नहीं समझ आ रहा है एक उपकरण का उपयोग कर एक ब्लॉग प्रविष्टि लिखा था).

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

मैं अंत में एहसास हुआ कि मैं "SharePoint गलत वर्तनी" का स्थान विशेषता में <CustomAction> नोड. यह बुरा elements.xml फाइल है:

<?xml संस्करण="1.0" एन्कोडिंग="utf-8" ?>
<तत्वों xmlns="http://schemas.microsoft.com/sharepoint/">
  <CustomAction
 आईडी="SiteActionsToolbar"
 GroupId="SiteActions"
 स्थान="Microsoft.Sharepoint.StandardMenu"
 अनुक्रम="100"
 शीर्षक="नमस्कार!"
 विवरण="कस्टम मेनू एक सुविधा के जरिए जोड़ा कार्रवाई."
 ImageUrl="_layouts/images/menuprofile.gif">

    <UrlAction यूआरएल="http://www.xyzzy.com"/>

  </CustomAction>
</तत्वों>

अच्छा:

<?xml संस्करण="1.0" एन्कोडिंग="utf-8" ?>
<तत्वों xmlns="http://schemas.microsoft.com/sharepoint/">
  <CustomAction
 आईडी="SiteActionsToolBar"
 GroupId="SiteActions"
 स्थान="Microsoft.SharePoint.StandardMenu"
 अनुक्रम="100"
 शीर्षक="नमस्कार!"
 विवरण="कस्टम मेनू एक सुविधा के जरिए जोड़ा कार्रवाई."
    >
    <UrlAction यूआरएल="http://www.xyzzy.com"/>
  </CustomAction>
</तत्वों>

That one took me a good two hours to figure out 🙂

मैं वास्तव में सांत्वना है कि भविष्य में कुछ दिन ले, मैं दृढ़ विश्वास के साथ कहने में सक्षम हो जाएगा, "वापस दिन में, मैं बर्फ में पहाड़ी के ऊपर तीन मील चलना पड़ा (नंगे पांव!) एक कस्टम विशेषता काई को परिनियोजित करने के लिए. आप बच्चों के, आप नहीं जानते आप कितना आसान यह है! मेरे लॉन बंद हो जाओ!"

प्रतीक्षा नहीं कर सकता.

</अंत>

Technorati टैग: ,