आप के लिए ServerManager (Microsoft.Web.Administration) जो पढ़ सकते हैं और IIS 7.0 विन्यास सिस्टम के लिए उपयोग लिखने प्रदान करता है देख रहे हैं।
माइक्रोसॉफ्ट.Web.Administration.SiteCollection के माध्यम से Iterate, साइट ऑब्जेक्ट का उपयोग करके अपनी वेबसाइट का संदर्भ प्राप्त करें और नाम संपत्ति का मूल्य पढ़ें।
// Snippet
using (ServerManager serverManager = new ServerManager()) {
var sites = serverManager.Sites;
foreach (Site site in sites) {
Console.WriteLine(site.Name); // This will return the WebSite name
}
तुम भी LINQ का उपयोग कर सकते ServerManager.Sites संग्रह क्वेरी करने के लिए (नीचे उदाहरण देखें)
// Start all stopped WebSites using the power of Linq :)
var sites = (from site in serverManager.Sites
where site.State == ObjectState.Stopped
orderby site.Name
select site);
foreach (Site site in sites) {
site.Start();
}
नोट: Microsoft.Web.Administration काम करता है केवल साथ IIS7।
आईआईएस 6 के लिए आप ऐसा करने के लिए एडीएसआई और डब्लूएमआई दोनों का उपयोग कर सकते हैं, लेकिन मेरा सुझाव है कि आप डब्लूएमआई के लिए जाएं जो एडीएसआई से तेज़ है। यदि डब्लूएमआई का उपयोग करते हैं, तो WMI Code Creator 1.0 (माइक्रोसॉफ्ट द्वारा नि: शुल्क/विकसित) पर एक नज़र डालें। यह आपके लिए कोड उत्पन्न करेगा।
HTH
नीचे का उपयोग कर सकते हैं प्रेरणा पर थोड़ा और विस्तार से बता सकते हैं? –
मैं अपने द्वारा लिखे गए एक वेब एप्लिकेशन के लिए लाइसेंसिंग कर रहा हूं और मुझे यह सुनिश्चित करने की ज़रूरत है कि लाइसेंस कुंजी का उपयोग केवल एक ही सर्वर पर प्रति वेब ऐप के बाद किया जाता है। वेब ऐप आईआईएस साइट को सौंपे गए कई डोमेन नामों के साथ काम करता है, इसलिए साइट के डोमेन नाम की कुंजी बाध्यकारी नहीं होगी। मशीन नाम के लिए बाध्यकारी वही व्यर्थ में ऐसा नहीं होगा क्योंकि मेरा ऐप उसी मशीन पर एकाधिक क्लाइंट के लिए स्थापित हो सकता है। संक्षेप में मुझे किसी विशेष मशीन पर आईआईएस वेबसाइट को विशिष्ट रूप से पहचानने की आवश्यकता है। चूंकि आईआईएस एक ही नाम के साथ कई साइटों की अनुमति नहीं देता है, इसलिए मुझे लगता है कि यह जाने का तरीका है। –
मेरा मतलब यह नहीं था कि मैं संवेदना सुन रहा हूं, मैं सिर्फ उत्सुक हूं कि कोई ऐसा क्यों करना चाहता है। –