2013-06-18 6 views
5

मैंने एक सर्वर में होस्ट किया गया एक एप्लिकेशन विकसित किया है। कई उपयोगकर्ता रिमोट डेस्कटॉप कनेक्शन के माध्यम से इसका उपयोग करते हैं, लेकिन कभी-कभी मैंने टास्क मैनेजर में देखा कि उसी उपयोगकर्ता ने 2-एक्स इंस्टेंस खोले हैं। मुझे रोकने की आवश्यकता है कि एक ही उपयोगकर्ता कई उदाहरण नहीं खोल सकता है। लेकिन ध्यान दें कि कार्यक्रम विभिन्न उपयोगकर्ताओं द्वारा कई बार खोला जा सकता है। कृपया मुझे मेरी अंग्रेजी क्षमा करें। धन्यवाद।सर्वर में एकाधिक उदाहरणों को रोकें समान उपयोगकर्ता नाम

पुनश्च: मैं Winforms उपयोग कर रहा हूँ और सी #

+0

पर कॉल करें आप आसानी से चल रही प्रक्रियाओं की सूची प्राप्त कर सकते हैं। फिर प्रक्रिया के मालिक को पाने के लिए इस पर एक नज़र डालें: http://stackoverflow.com/questions/300449/how-do-you-get-the-username-of-the-owner-of-a-process – Dilshod

+0

@ * दूरस्थ डेस्कटॉप * – I4V

उत्तर

2

आप उपयोगकर्ता के नाम के साथ एक म्युटेक्स बना सकते हैं।

bool b = true; 
Mutex mutex = new Mutex(true, Environment.UserName.ToLowerInvariant() , out b); 
if (!b) throw new InvalidOperationException("Another instance is running"); 
+0

स्वच्छ समाधान का उपयोग करते समय उपयोगकर्ता में मशीन में व्यवस्थापक नहीं है, तो दिलशोड इतना आसान नहीं हो सकता है, लेकिन क्या खोला गया फॉर्म दिखाने के लिए कोई तरीका है जिसे उपयोगकर्ता फिर से खोलने की कोशिश कर रहा है? –

+0

@ymorales एक और सवाल मेरी प्रतिक्रियाओं के बाद बेहतर प्रतिक्रिया प्राप्त कर सकते हैं। – I4V

+1

आपको संभवतः वर्तमान उदाहरण के बजाय सभी टर्मिनल सर्वर सत्रों में देखा गया यह सुनिश्चित करने के लिए @ "ग्लोबल \" के साथ म्यूटेक्स नाम को उपसर्ग करना चाहिए। और जैसा कि zmbq इंगित करता है, आपको शायद अपने सॉफ़्टवेयर नमूना का उपयोग करने वाले अन्य सॉफ़्टवेयर के साथ टकराव से बचने के लिए ऐप का नाम शामिल करना चाहिए। – EricLaw

1

यह देखने का अनुशंसित तरीका है कि आपके आवेदन का एक और उदाहरण पहले से चल रहा है, म्यूटेक्स का उपयोग करना है। उदाहरण के लिए here देखें।

चूंकि आप अलग-अलग उपयोगकर्ताओं को चलाने के लिए एप्लिकेशन के कई उदाहरण चलाने की अनुमति देना चाहते हैं, तो बस वर्तमान उपयोगकर्ता नाम को mutex के नाम पर जोड़ें। उदाहरण के लिए, म्यूटेक्स "MyApp"+Environment.UserName

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