2012-02-27 14 views
7

में आईआईएस लॉग फ़ाइल स्थान को प्रोग्रामेटिक रूप से पुनर्प्राप्त करना मैं अपने एएसपी.NET एप्लिकेशन के आईआईएस लॉग फ़ाइल स्थान का स्थान निर्धारित करने की कोशिश कर रहा हूं। मैंने डब्लूएमआई की कोशिश की, लेकिन इसे ढूंढने में सक्षम नहीं था। कोई सुझाव?एएसपी.NET अनुप्रयोग

नोट: मैं प्रोग्राम को प्रोग्रामेटिक रूप से पुनर्प्राप्त करने में सक्षम होना चाहता हूं; आगे के उपयोग के लिए मेरे आवेदन के अंदर। संपादित करें: यहां मेरा कोड है: यह काम करता है लेकिन मुझे लॉग की वास्तविक भौतिक निर्देशिका स्थान नहीं देता है। तो यह मूल रूप से बेकार है।

ManagementPath p2=new ManagementPath("IIsLogModule.Name='logging/Microsoft IIS Log File Format'"); 
ManagementObject log = new ManagementObject(scope, p2, objectGet); 
log.Get(); 
logPath.Text = log["__PATH"].ToString(); 
+0

अपना कोड दिखाएं ?? आपने अभी तक क्या किया है, ताकि हम जादू की छड़ी के साथ मदद कर सकें: डी –

+0

मुझे लगता है कि आप अपने जीवन को कठिन बनाने की कोशिश करते हैं। जहां यह फ़ाइल कुछ है जिसे आप नियंत्रित करते हैं, और जानते हैं, आप उन्हें कुछ सेटअप फ़ाइलों को देखने के लिए क्यों जीते हैं, जिनके पास शायद उनके पास पहुंच नहीं है? – Aristos

+0

मैंने अपना प्रश्न संपादित किया। लेकिन मुझे विश्वास नहीं है कि यह आपकी मदद करेगा, क्योंकि यह कोड ब्लॉक मुझे जो चाहिए उससे अलग कुछ प्रदर्शित करता है। जल्दी जवाब देने का शुक्रिया। – Slethron

उत्तर

5

IIS7 पर आप Microsoft.Web.Administration विधानसभा इस्तेमाल कर सकते हैं, Site वर्ग, एक संपत्ति LogFile नामक आप साइट के लिए लॉग फ़ाइल के बारे में विभिन्न जानकारी, उदाहरण के लॉग फ़ाइल निर्देशिका के लिए प्राप्त कर सकते हैं इस कोड के साथ प्राप्त किया जा सकता:

ServerManager manager = new ServerManager(); 
    Site mySite = manager.Sites["SiteName"]; 
    Response.Write("Log file directory : " + mySite.LogFile.Directory + "\\W3svc" + mySite.Id.ToString()); 

मैं बहुत ज्यादा है कि साइट के लिए निर्देशिका उपसर्ग के साथ हार्डकोडेड हिस्सा है, लेकिन किसी भी अन्य बेहतर तरीका

0

आप ADSI (या WMI) का उपयोग करने में सक्षम है कि ऐसा करने के लिए करना चाहिए नहीं मिला पसंद नहीं है - IIS मेटाबेस को ब्राउज़ करें और 'एल' देखें वेब साइट नोड के लिए ogFileDirectory 'संपत्ति। उदाहरण के लिए,

var root = new DirectoryEntry(@"IIS://localhost/W3SVC"); 
var sites = root.Children; 
foreach(DirectoryEntry site in sites) { 
    var name = site.Properties["ServerComment"][0]; 
    var logFile = site.Properties["LogFileDirectory"][0]; 
} 

अस्वीकरण: Untested कोड

this powershell example देखें समान विचार का उपयोग कर।

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