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 管理員的 [ 網站 系結] 對話方塊中檢視網站的系結。 若要開啟對話方塊,請以滑鼠右鍵按一下 [ 連線 ] 窗格中的月臺節點,然後按一下 [ 編輯系結]。 [ 網站系結 ] 對話方塊會顯示 Binding 月臺物件中的 BindingCollection 物件。
BindingCollection除非呼叫 方法更新ApplicationHost.config檔案 Microsoft.Web.Management.Server.ManagementUnit.Update ,否則物件變更不會反映在 IIS 管理員中。
屬性
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>) |
適用於
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應