जब आप साइट्स [lWebsite] तक पहुंचते हैं। बाइंडिंग्स, आप बाइंडिंग के संग्रह तक पहुंच रहे हैं। जब आप GetAttributeValue ("पोर्ट") को कॉल करने का प्रयास करते हैं, तो यह विफल हो जाता है क्योंकि इससे कोई अर्थ नहीं होता है - संग्रह में स्वयं के साथ कोई पोर्ट नंबर नहीं है, यह केवल एक संग्रह है।
आप बंदरगाह प्रत्येक बाध्यकारी द्वारा इस्तेमाल किया संख्या के लिए उपयोग करना चाहते हैं, तो आप उन बंधनों के माध्यम से लूप करने की जरूरत है और उसके संबंधित पोर्ट संख्या के लिए हर एक से पूछते हैं:
var site = lServerManager.Sites[lWebsite];
foreach (var binding in site.Bindings)
{
int port = binding.EndPoint.Port;
// Now you have this binding's port, and can do whatever you want with it.
}
यह तथ्य यह है कि प्रकाश डाला लायक है वेबसाइटों कई बंदरगाहों के लिए बाध्य किया जा सकता है। आप "बंदरगाह" प्राप्त करने के बारे में बात करते हैं, लेकिन यह आवश्यक नहीं है - उदाहरण के लिए, एक वेबसाइट जो HTTP और HTTPS दोनों पर दी जाती है, में दो बाइंडिंग होंगी, आमतौर पर पोर्ट 80 और 443 पर। इसलिए आपको बाइंडिंग के संग्रह, भले ही आपके मामले में संग्रह में केवल एक बाध्यकारी हो, यह अभी भी एक संग्रह है।
अधिक जानकारी के लिए, the Binding class के लिए एमएसडीएन दस्तावेज़ देखें। ध्यान दें कि इसमें से कुछ में रुचि रखने की संभावना है जिसमें उपरोक्त नमूने में बाध्यकारी की एंडपॉइंट संपत्ति तक पहुंच शामिल है।
कृपया नीचे दिए गए लिंक को देखें। Http://stackoverflow.com/questions/11616606/set-website-port-with-servermanager-class –
msdn फ़ोरम में एक और लिंक। http://social.msdn.microsoft.com/Forums/vstudio/en-US/4d340847-25aa-47ee-aa43-b52c0565bfad/to-read-the-iis-default-website-port-number-c?forum= netfxbcl –
@ जयेश गोयानी: बाइंडिंग नोड। एट्रिब्यूट ("पोर्ट")। वैल्यू भी काम नहीं करता है। – Simon