2014-04-07 30 views
6

IIS Yöneticisi'nde, varsayılan web sitesi bağlantı noktası 80'e bağlıdır. Bağlantı noktasını C# kullanarak web sitesi adına nasıl alabilirim? Bir invalid index hariç nullBağlantı noktasını IIS'den C# ile web sitesi adına nasıl alabilirim?

var lWebsite = "Default Web Site"; 
var lServerManager = new ServerManager(); 
var lPort = lServerManager.Sites[lWebsite].Bindings.GetAttributeValue("Port"); 

lPort sonuçları: Aşağıdaki kodu çalıştı. Ancak, atama var lPort = lServerManager.Sites[lWebsite] çalışır.

+0

Lütfen aşağıdaki bağlantıyı kontrol edin.http: //stackoverflow.com/questions/11616606/set-website-port-with-servermanager-class –

+0

msdn forumunda bir tane daha bağlantı var. 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 –

+0

@Jayesh Goyani: bindingNode.Attribute ("Port"). Değer de çalışmıyor. – Simon

cevap

10

Sitelere [lWebsite] .Bindings'e eriştiğinizde, bağlantıların bir koleksiyonuna erişiyorsunuz. GetAttributeValue ("Bağlantı Noktası") aramayı denediğinizde, bu bir anlam ifade etmiyor çünkü koleksiyonun kendisi ile ilişkili bir bağlantı noktası numarası yok, yalnızca bir koleksiyon. Her bağlanarak kullanılan port numarasına erişmek istiyorsanız

, o bağlamaları döngü gerekir ve ilişkili bağlantı noktası numarası için her birini soruyoruz: Bu gerçeği olduğunu vurgulayarak değer

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. 
} 

web siteleri Birden çok bağlantı noktasına bağlı olabilir. "Bağlantı noktası" almaktan bahsediyorsunuz, ancak bu durum mutlaka geçerli değil - örneğin, hem HTTP hem de HTTPS üzerinden sunulan bir web sitesi genellikle 80 ve 443 numaralı bağlantı noktalarında iki bağlantıya sahip olacak. Bu yüzden, koleksiyonunda bulunan, koleksiyonunuzda sadece bir bağlayıcı bulunabilse de, koleksiyonunuz hala koleksiyonudur.

Daha fazla ayrıntı için, the Binding class için MSDN belgelerine bakın. İlgilendiğiniz şeylerin bir kısmının, yukarıdaki örnekte olduğu gibi, bağlayıcı'nın EndPoint özelliğini erişmesini içereceğini unutmayın.

İlgili konular