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文件之前,对对象的更改不会反映在 IIS 管理器中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>) |
适用于
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈