BindingCollection 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
바인딩 컬렉션을 나타냅니다.
public ref class BindingCollection sealed : Microsoft::Web::Administration::ConfigurationElementCollectionBase<Microsoft::Web::Administration::Binding ^>
public sealed class BindingCollection : Microsoft.Web.Administration.ConfigurationElementCollectionBase<Microsoft.Web.Administration.Binding>
type BindingCollection = class
inherit ConfigurationElementCollectionBase<Binding>
Public NotInheritable Class BindingCollection
Inherits ConfigurationElementCollectionBase(Of Binding)
- 상속
예제
다음 예제에서는 추적 수신기에 대한 각 바인딩의 수를 표시합니다.
void ShowBE(Object propertyToConvert) {
BindingCollection bindingColl = propertyToConvert as BindingCollection;
int httpsCnt=0;
int httpCnt=0;
int unknownCnt=0;
foreach (Microsoft.Web.Administration.Binding bindElem in bindingColl) {
if (bindElem.Protocol.Equals(
"https", StringComparison.InvariantCultureIgnoreCase) ) {
httpsCnt++;
} else if (bindElem.Protocol.Equals(
"http", StringComparison.InvariantCultureIgnoreCase) ){
httpCnt++;
}
else
unknownCnt++;
}
Trace.WriteLine("HTTPS Cnt = " + httpsCnt.ToString());
Trace.WriteLine("HTTP Cnt = " + httpCnt.ToString());
Trace.WriteLine("Unknown Cnt = " + unknownCnt.ToString());
}
다음 예제에서는 서버의 각 사이트에 대한 각 바인딩을 나열합니다.
[ModuleServiceMethod(PassThrough = true)]
public ArrayList GetSiteCollection()
{
// Use an ArrayList to transfer objects to the client.
ArrayList arrayOfSitePropertyBags = new ArrayList();
SiteCollection siteCollection =
base.ManagementUnit.ServerManager.Sites;
Site siteToModify = null;
string newbindinginformation = String.Empty;
byte[] newcertificateHash = null;
string newcertificateStoreName = String.Empty;
Int32 bindingIndex = -1;
// Find a binding with an https protocol, if one exists.
// Capture the site, certificate hash, and the certificate store name.
foreach (Site site in siteCollection)
{
PropertyBag siteBag = new PropertyBag();
siteBag[TestDemoGlobals.SiteName] = site.Name;
siteBag[TestDemoGlobals.SiteId] = site.Id;
ArrayList siteBindingsArray = new ArrayList();
foreach (Microsoft.Web.Administration.Binding binding in site.Bindings)
{
PropertyBag bindingBag = new PropertyBag();
bindingBag[TestDemoGlobals.BindingInformation] = binding.BindingInformation;
if (binding.Protocol == "https")
{
// Capture certificate information for binding to be created later
siteToModify = site;
newcertificateHash = binding.CertificateHash;
newcertificateStoreName = binding.CertificateStoreName;
// Add certificate data to binding property bag
bindingBag[TestDemoGlobals.BindingCertificateHashType] =
binding.CertificateHash.ToString();
string hashString = String.Empty;
foreach (System.Byte certhashbyte in binding.CertificateHash)
{
hashString += certhashbyte.ToString() + " ";
}
bindingBag[TestDemoGlobals.BindingCertificateHash] = hashString;
bindingBag[TestDemoGlobals.BindingCertificateHashStoreName] = binding.CertificateStoreName;
}
bindingBag[TestDemoGlobals.BindingProtocol] = binding.Protocol;
bindingBag[TestDemoGlobals.BindingEndPoint] = binding.EndPoint;
bindingBag[TestDemoGlobals.BindingHost] = binding.Host;
bindingBag[TestDemoGlobals.BindingIsIPPortHostBinding] = binding.IsIPPortHostBinding;
bindingBag[TestDemoGlobals.BindingToString] = binding.ToString();
bindingBag[TestDemoGlobals.BindingUseDsMapper] = binding.UseDsMapper;
siteBindingsArray.Add(bindingBag);
}
siteBag[TestDemoGlobals.BindingsArrayList] = siteBindingsArray;
arrayOfSitePropertyBags.Add(siteBag);
}
// Adding a duplicate binding throws an error.
if (siteToModify != null)
{
newbindinginformation = "*:448:TestingSite";
try
{
// Add this binding. It does not already exist.
siteToModify.Bindings.Add(newbindinginformation, newcertificateHash, newcertificateStoreName);
}
catch
{
// Remove this binding. It already exists.
foreach (Microsoft.Web.Administration.Binding binding in siteToModify.Bindings)
{
if (binding.BindingInformation == newbindinginformation)
{
bindingIndex = siteToModify.Bindings.IndexOf(binding);
}
}
if (bindingIndex != -1)
{
siteToModify.Bindings.RemoveAt(bindingIndex);
}
}
// Update information and save in Administration.config file.
ManagementUnit.Update();
}
return arrayOfSitePropertyBags;
}
설명
IIS 관리자의 사이트 바인딩 대화 상자에서 사이트에 대한 바인딩 을 볼 수 있습니다. 대화 상자를 열려면 연결 창에서 사이트 노드를 마우스 오른쪽 단추로 클릭한 다음 바인딩 편집을 클릭합니다. 사이트 바인딩 대화 상자에는 사이트의 개체에 BindingCollection 개체가 표시됩니다Binding.
개체에 대한 BindingCollection 변경 내용은 메서드 호출에 의해 ApplicationHost.config 파일이 업데이트될 때까지 IIS Manager에 Microsoft.Web.Management.Server.ManagementUnit.Update 반영되지 않습니다.
속성
AllowsAdd |
요소 이름이 현재 컬렉션 스키마에 정의되어 있는지 여부를 |
AllowsClear |
요소 이름이 현재 컬렉션 스키마에 |
AllowsRemove |
요소 이름이 현재 컬렉션 스키마에 |
Attributes |
이 요소에 대한 특성 목록을 포함하는 구성 특성 컬렉션을 가져옵니다. (다음에서 상속됨 ConfigurationElement) |
ChildElements |
현재 요소의 모든 자식 요소를 가져옵니다. (다음에서 상속됨 ConfigurationElement) |
Count |
컬렉션의 항목 수를 가져옵니다. (다음에서 상속됨 ConfigurationElementCollectionBase<T>) |
ElementTagName |
바인딩 컬렉션을 나타냅니다. (다음에서 상속됨 ConfigurationElement) |
IsLocallyStored |
구성 요소가 특정 구성 파일에 저장되어 있는지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 ConfigurationElement) |
Item[Int32] |
지정된 인덱스에서 구성 요소를 가져옵니다. (다음에서 상속됨 ConfigurationElementCollectionBase<T>) |
Item[String] |
지정된 이름의 특성을 가져오거나 설정합니다. (다음에서 상속됨 ConfigurationElement) |
Methods |
구성 요소에 대한 메서드 컬렉션을 가져옵니다. (다음에서 상속됨 ConfigurationElement) |
RawAttributes |
바인딩 컬렉션을 나타냅니다. (다음에서 상속됨 ConfigurationElement) |
Schema |
구성 요소 컬렉션을 설명하는 스키마를 가져옵니다. (다음에서 상속됨 ConfigurationElementCollectionBase<T>) |
메서드
명시적 인터페이스 구현
ICollection.CopyTo(Array, Int32) |
특정 배열 인덱스부터 시작하여 컬렉션의 요소를 배열에 복사합니다. (다음에서 상속됨 ConfigurationElementCollectionBase<T>) |
ICollection.Count |
바인딩 컬렉션을 나타냅니다. (다음에서 상속됨 ConfigurationElementCollectionBase<T>) |
ICollection.IsSynchronized |
바인딩 컬렉션을 나타냅니다. (다음에서 상속됨 ConfigurationElementCollectionBase<T>) |
ICollection.SyncRoot |
바인딩 컬렉션을 나타냅니다. (다음에서 상속됨 ConfigurationElementCollectionBase<T>) |
IEnumerable.GetEnumerator() |
컬렉션을 반복하는 열거자를 반환합니다. (다음에서 상속됨 ConfigurationElementCollectionBase<T>) |