ऐप दो धागे में विभाजित है; मुख्य वेब ऐप और एक सेकेंडरी थ्रेड एसिंक्रोनस इवेंट हैंडलिंग के लिए उपयोग किया जाता है। द्वितीयक थ्रेड को एक ईवेंट प्राप्त होता है जहां इसे मुख्य ऐप (साथ ही अतिरिक्त मार्ग तर्क) के पूर्ण योग्य URL के साथ एक ईमेल भेजने की आवश्यकता होती है।मैं एएसपी.नेट एमवीसी में पृष्ठभूमि थ्रेड से एक एप्लिकेशन यूआरएल कैसे हल करूं?
उदा। http://Server.com/App/RouteData?AdditionalArguments
बेशक पृष्ठभूमि धागे में यूआरएल को हल करने के लिए HttpContext.Current का उपयोग करने की लक्जरी नहीं है, क्योंकि कोई अनुरोध नहीं है। कोई HttpRequest, कोई HttpContext ...
मुझे पता चला कि एएसपी.NET (यहां तक कि एमवीसी के साथ) यूआरएल बनाने के लिए अधिकांश विधियां एचटीपीकॉन्टेक्स्ट पर भरोसा करती हैं। क्या एएसपी.नेट में एचटीपीकॉन्टेक्स्ट या इसके किसी भी डेरिवेटिव का उपयोग किये बिना पूरी तरह से योग्य आवेदन यूआरएल बनाने का कोई तरीका मौजूद है?
UrlHelper.GetApplicationtUrl()
किसी भी विचार:
मैं की तरह एक धागे की सुरक्षित विधि के लिए देख रहा हूँ? आपके सुझावों का स्वागत है.
अधिक प्रयोग के बाद, मैंने यह सबसे अच्छा समाधान पाया। एप्लिकेशन url को खोजने के लिए System_Start पर System.Web.Mvc.UrlHelper का उपयोग करना, फिर इसे सिंगलटन में स्थिर चर में असाइन करना या निर्भरता इंजेक्शन का उपयोग करके इसे कन्स्ट्रक्टर तर्क के रूप में पास करना भी काम करता है। हालांकि, इस समाधान का उपयोग करके अप्रत्याशित असफलताएं आती हैं, जैसे लोड-बैलेंसिंग करने के लिए प्रॉक्सी-सर्वर बेस यूआरएल प्राप्त करना। कॉन्फ़िगरेशन सबसे अच्छा समाधान जैसा प्रतीत होता है क्योंकि लक्ष्य सर्वर पता (और प्रोटोकॉल) हमेशा रनटाइम पर निर्धारित नहीं किया जा सकता है। इसे प्री-सेट करना सबसे अच्छा है। धन्यवाद शॉन :) – Nautic20