c# सी#(मोनो) थ्रेड्स में लगातार स्थिर चर के साथ होस्टिंग लिनक्स वेब सर्वर



linux mono (1)

क्या किसी को सी # (मोनो) लिनक्स वेब सर्वर होस्टिंग कॉन्फ़िगरेशन के बारे में पता है जो थ्रेड्स में स्थिर स्थैतिक चर को सक्षम करता है (यानी प्रति धागा उदाहरण के सीजीआई मॉडल नहीं)?

विवरण

मेरे पास कुछ सी # (मोनो) कोड है जिसे हमें एक सरल वेब एप के भाग के रूप में लिनक्स पर होस्ट करना होगा। हमें किसी पारंपरिक एएसपी या एस्प.net एमवीसी सुविधाओं की ज़रूरत नहीं है, वास्तव में हमें केवल साझा यूआरएल के साथ साझा किए गए स्थिर चर के आधार पर गतिशील सामग्री के साथ जवाब देने की क्षमता की आवश्यकता है।

स्टेटिक वैरिएबल: हमारे पास एक विशेष ज़रूरत यह है कि हमें सभी आवक अनुरोधों (उसी तरह वे ASP.net एमवीसी एप्लिकेशन के साथ खिड़कियों पर करते हैं) में उनके मूल्य को बनाए रखने के लिए स्थिर चर की जरूरत है। अपाचे mod_mono जैसे एक मोनो सी # वेब ऐप की मेजबानी करने के सामान्य तरीके 'सी # आवेदन उदाहरण प्रति धागा' मॉडल का उपयोग करते हैं, जहां हमारे सी # एप्लिकेशन के कई स्वतंत्र इंस्टॉलेशन प्रत्येक स्वयं के स्थिर चर के साथ होगा यही समस्या हमें बचने की जरूरत है मुझे एसी # एप्लिकेशन की मेजबानी करने की एक आवश्यकता है जो एक सामान्य ऐप को स्थिर चर के साझा सेट के साथ प्रदान करता है जो सभी आवक अनुरोध देखेंगे। यह ठीक है कि जब ऐप को पुन: रिसाव किया जाता है कि स्थैतिक चर को रीसेट (सामान्य आईआईएस / एमवीसी की तरह) रीसेट हो जाता है, तो जब तक रीसायकल विरल नहीं होता है

पृष्ठभूमि यह है कि इस वेब ऐप को स्थिर वैरिएबल में रैम में बड़ी मात्रा में डेटा रखने की आवश्यकता होती है और उस डेटा के बारे में तेजी से सवालों के जवाब देते हैं। हर थ्रेड के लिए खुला ऐप की एक प्रति होने के कारण राम संसाधन बहुत अधिक हो जाएंगे और डेटा को मेमोरी में पुनः लोड कर सकते हैं अक्सर ऐप बहुत धीमी हो जाती है (आईआईएस / एएसपी.एम. प्रणाली Windows / IIS7 (प्रति सेकंड 50,000+ गतिशील अनुरोध) पर आश्चर्यजनक अच्छी तरह से काम करती है और हम इस वास्तुकला को बदलना नहीं चाहते हैं, इसलिए मैं जिस उत्तर की तलाश कर रहा हूं वह होस्टिंग के साथ संबंधित अनुप्रयोग डिजाइन को बदल नहीं रहा।


mod_mono प्रत्येक नए वेब अनुरोध के लिए एक नई मोनो प्रक्रिया पैदा नहीं करता है न तो यह करता है यदि आप अपाचे या एनजीएनएक्स के साथ fastcgi सर्वर का उपयोग करते हैं

संपादित करें: स्टेटिक चर समान अनुप्रयोग डोमेन के भीतर साझा किए जाते हैं। यह माइक्रोसॉफ्ट के लिए सही है। NET IIS और मोनो के लिए (कोई बात नहीं यदि आप mod_mono, xsp या mono-fastcgi-server का उपयोग कर रहे हैं)। यहां तक ​​कि अपाचे कई कार्यकर्ता धागे पैदा कर लेता है और एकल कार्यकर्ता धागा द्वारा एकल अनुरोध संभाला जाता है, किसी भी समय चलने वाली केवल एक एकल प्रक्रिया होती है (सिवाय यदि आपने कई asp.net अनुप्रयोगों को विन्यस्त किया है, तो एक प्रति आवेदन) ।

मोनो एएसपी.नेट के लिए भी 100% संगतता हासिल करने की कोशिश करता है, इसलिए डिजाइन के द्वारा कोई अलग व्यवहार नहीं है!

आपके प्रोग्राम का लिनक्स पर अलग-अलग व्यवहार सबसे अधिक संभावना नहीं है कि कैसे mod_mono अनुरोधों को संभालता है, बल्कि मोनो में एक बग या आपके कोड (अर्थात प्लेटफॉर्म धारणा बनाकर, जो कि Linux पर सच नहीं रखता है)। आपको मोनोइडवेल / एक्सएसपी का इस्तेमाल करना चाहिए और समस्या को और अधिक स्पष्ट करने का प्रयास करना चाहिए, या यहाँ कुछ नमूना कोड पेस्ट करना चाहिए।





hosting