से स्थानीय रूप से चल रहा है या नहीं, मेरे पास एक इंटरफ़ेस है, चलिए इसे ILocateLogFile
पर कॉल करें, dev/beta/production सर्वर के लिए मानक कार्यान्वयन के साथ, और केवल स्थानीय विकास वातावरण में ही काम करता है। अगर मैं स्थानीय रूप से या सर्वर पर चल रहा हूं, तो मुझे निर्णय लेने के लिए एक अच्छा साफ तरीका नहीं लगता है (अधिमानतः संकलन समय पर, लेकिन रनटाइम ठीक होगा)। यह आईआईएस पर होस्ट किया गया एक डब्ल्यूसीएफ एप्लीकेशन है, यदि यह मायने रखता है।यह बताएं कि कोड स्टूडियो स्टूडियो/कैसिनी
सबसे अच्छा मैं एक संकलक प्रतीक का उपयोग करने के लिए है के साथ आ गया है, कुछ की तरह:
ILocateLogFile locateLogFile;
#if DEBUG
locateLogFile = new DevSandboxLogFileLocator();
#else
locateLogFile = new LogFileLocator();
#endif
समस्या है, संकलन प्रतीकों का निर्माण है, जो मैं नियंत्रण नहीं द्वारा तैयार हो जाओ, और मैं निश्चित होना चाहते हैं। विजुअल स्टूडियो की उपस्थिति की जांच करने के लिए कुछ स्वैच्छिक तरीका नहीं है? या कम से कम आईआईएस की बजाय कैसिनी की जांच करने के लिए?
मैं इस एक अगर किसी और बयान में सर्वर नाम चर के लिए जाँच के द्वारा पहले हल देखा है प्रयोग किया जाता है। – RandomUs1r
लॉगिंग कॉन्फ़िगर करने के लिए .config फ़ाइलों का उपयोग न करने का कोई कारण नहीं है? (संभवतः आपके पास प्रत्येक वातावरण के लिए अलग-अलग .config है, इसलिए लॉगिंग जोड़ने के लिए भी छोटा हो सकता है)। –
@ RandomUs1r यह एक अच्छा सुझाव है, लेकिन मैं 'System.Web.HttpContext' का उपयोग नहीं कर सकता क्योंकि मेरी डब्ल्यूसीएफ सेवा एएसपी.Net संगतता का उपयोग नहीं कर रही है ... – McGarnagle