2012-03-28 14 views
9

प्रकाशित करते समय .NET dll लोड करने में असमर्थ। मैं घटकों को संसाधित करने और जेसन डेटा जेनरेट करने के लिए .NET dll Newtonsoft.Json in my C# TBB का उपयोग कर रहा हूं। मैंने पहले ही इस डीएल को GAC[Global Assembly Cache] में जोड़ा है, और यह भी काम करता है। लेकिन कभी कभी यह काम नहीं करता है और मैं निम्नलिखित त्रुटि मिलती प्रकाशित करते समय:ट्रिडियन:

JScriptException: Expression 'RenderComponentPresentation()' had error 'Could not load file or assembly 'Newtonsoft.Json, Version=4.0.5.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified.'

लेकिन जब मैं Tridion में पृष्ठ का पूर्वावलोकन यह ठीक काम करता है। इस समस्या को हल करने के लिए हम Tridion Services को पुनरारंभ करें, और पुनरारंभ करने के बाद हम पृष्ठ को प्रकाशित करते हैं जो ठीक है। लेकिन यह समस्या बार-बार फिर से दिखती रहती है। क्या इस मुद्दे को स्थायी रूप से हल करने का कोई तरीका है?

हाल ही में जब मैं प्रकाशित होने की प्रक्रिया के तहत पहले से ही उसी पृष्ठ को प्रकाशित करता हूं तो मैं समस्या को फिर से उत्पन्न कर सकता हूं। दूसरे प्रकाशन प्रयास ने उपरोक्त त्रुटि को वापस कर दिया, लेकिन पहला प्रकाशन प्रयास दूसरे प्रकाशन प्रयास की विफलता के बाद समाप्त हुआ और यह Success लौटा। कोई विचार यह अजीब व्यवहार क्यों है।

+2

ऐसा लगता है कि यह थ्रेडिंग समस्या हो सकती है क्योंकि पूर्वावलोकन एकल थ्रेडेड है, और प्रकाशन/प्रतिपादन बहुप्रचारित है। आपके पास कितने धागे हैं? क्या आप इसे एक में बदलने का प्रयास कर सकते हैं और यह देखने के लिए पुनः प्रयास कर सकते हैं कि टीई समस्या अभी भी होती है या नहीं। यह समस्या का समाधान नहीं करेगा, लेकिन। मैं कारण साबित करता हूं। –

+1

आप ट्रिडियन एसई साइट पर काम करने पर विचार करना चाह सकते हैं - इनमें से बहुत से प्रश्न उपयुक्त होंगे: http://area51.stackexchange.com/proposals/38335/tridion?referrer=eo63snjNlUWNn9xqeeO2NA2 –

+0

अरे @ सुनील। मैंने अभी देखा है कि यह सवाल अभी भी खुला है। क्या नीचे दिए गए कोई भी जवाब आपको समस्या हल करने में मदद करता है? यदि हां, तो क्या आप उस उत्तर को बड़े चेक मार्क पर क्लिक करके स्वीकार कर सकते हैं? –

उत्तर

6

कभी-कभी आपका प्लेटफ़ॉर्म ठीक से सेट नहीं होता है। परियोजना को राइट-क्लिक करके और डीएलएल का उपयोग करने के लिए फ्रेमवर्क को 4.0 (या जो भी संगत है) पर सेट करके देखें। फिर, एप्लिकेशन को बंद करें और इसे फिर से चलाने का प्रयास करें। आपका प्लेटफ़ॉर्म .NET Framework 4 क्लाइंट प्रोफ़ाइल पर सेट हो सकता है।

6

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

जैसा कि क्रिस कहते हैं, शायद यह एक थ्रेडिंग मुद्दा है, लेकिन कभी-कभी इस प्रकार की अजीबता स्मृति दबाव के तहत दिखाई देती है। क्या आप लीक होने पर यह देखने के लिए अपनी प्रकाशक प्रक्रिया के स्मृति उपयोग की निगरानी कर सकते हैं?

+2

यहां समान विचार हैं, केवल एक चीज जो दिमाग में कूदती है वह यह है कि अगर पर्यावरण संभवतः कई प्रकाशकों के साथ बढ़ाया जाता है। उस मामले में सीएम/प्रकाशक सर्वरों में से प्रत्येक को जीएसी में निर्भर असेंबली की आवश्यकता होगी और इसके बाद सेवाओं को फिर से शुरू किया जाएगा, और कुछ भी चल रहा है। –

3

फ़्यूज़न लॉग फ़ाइलें आपको विफल होने पर अधिक जानकारी प्रदान कर सकती हैं। क्या आपने पहले से ही इस उपकरण का उपयोग किया था?

Fuslogvw.exe (Assembly Binding Log Viewer)

उसके अलावा मैं .NET 4.0 के लिए नवीनतम JSON.NET संस्करणों हो रही है और यह सुनिश्चित करें कि आप सभी सर्वरों प्रकाशित करने का अधिकार संस्करणों तैनात सलाह देते हैं।

संबंधित मुद्दे