CustomBinding Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Definuje vazbu ze seznamu prvků vazby.
public ref class CustomBinding : System::ServiceModel::Channels::Binding
public class CustomBinding : System.ServiceModel.Channels.Binding
[System.Windows.Markup.ContentProperty("Elements")]
public class CustomBinding : System.ServiceModel.Channels.Binding
type CustomBinding = class
inherit Binding
[<System.Windows.Markup.ContentProperty("Elements")>]
type CustomBinding = class
inherit Binding
Public Class CustomBinding
Inherits Binding
- Dědičnost
- Atributy
Příklady
Následující příklad ukazuje, jak vytvořit CustomBinding objekt pomocí ReliableSessionBindingElement a HttpTransportBindingElement
Uri baseAddress = new Uri("http://localhost:8000/servicemodelsamples/service");
// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress))
{
// Create a custom binding that contains two binding elements.
ReliableSessionBindingElement reliableSession = new ReliableSessionBindingElement();
reliableSession.Ordered = true;
HttpTransportBindingElement httpTransport = new HttpTransportBindingElement();
httpTransport.AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous;
httpTransport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
CustomBinding binding = new CustomBinding(reliableSession, httpTransport);
// Add an endpoint using that binding.
serviceHost.AddServiceEndpoint(typeof(ICalculator), binding, "");
// Add a MEX endpoint.
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
smb.HttpGetUrl = new Uri("http://localhost:8001/servicemodelsamples");
serviceHost.Description.Behaviors.Add(smb);
// Open the ServiceHostBase to create listeners and start listening for messages.
serviceHost.Open();
// The service can now be accessed.
Console.WriteLine("The service is ready.");
Console.WriteLine("Press <ENTER> to terminate service.");
Console.WriteLine();
Console.ReadLine();
// Close the ServiceHostBase to shutdown the service.
serviceHost.Close();
}
Dim baseAddress As New Uri("http://localhost:8000/servicemodelsamples/service")
' Create a ServiceHost for the CalculatorService type and provide the base address.
Using serviceHost As New ServiceHost(GetType(CalculatorService), baseAddress)
' Create a custom binding that contains two binding elements.
Dim reliableSession As New ReliableSessionBindingElement()
reliableSession.Ordered = True
Dim httpTransport As New HttpTransportBindingElement()
httpTransport.AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous
httpTransport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard
Dim binding As New CustomBinding(reliableSession, httpTransport)
' Add an endpoint using that binding.
serviceHost.AddServiceEndpoint(GetType(ICalculator), binding, "")
' Add a MEX endpoint.
Dim smb As New ServiceMetadataBehavior()
smb.HttpGetEnabled = True
smb.HttpGetUrl = New Uri("http://localhost:8001/servicemodelsamples")
serviceHost.Description.Behaviors.Add(smb)
' Open the ServiceHostBase to create listeners and start listening for messages.
serviceHost.Open()
' The service can now be accessed.
Console.WriteLine("The service is ready.")
Console.WriteLine("Press <ENTER> to terminate service.")
Console.WriteLine()
Console.ReadLine()
' Close the ServiceHostBase to shutdown the service.
serviceHost.Close()
End Using
Poznámky
Vlastní vazbu použijte, pokud některá ze systémem poskytovaných vazeb nesplňuje požadavky vaší služby. Vlastní vazbu je možné použít například k povolení použití nového přenosu nebo nového kodéru v koncovém bodu služby.
Vlastní vazba se vytváří pomocí jednoho z elementů CustomBinding z kolekce elementů vazby, které jsou "skládané" v určitém pořadí:
V horní části je volitelný TransactionFlowBindingElement objekt, který umožňuje tok transakcí.
Další možnost je volitelná ReliableSessionBindingElement , která poskytuje mechanismus relace a řazení, jak je definováno ve specifikaci WS-ReliableMessaging. Tato představa relace může protínit protokol SOAP a dopravní zprostředkovatele.
Další je volitelný element vazby zabezpečení, který poskytuje funkce zabezpečení, jako je autorizace, ověřování, ochrana a důvěrnost. Windows Communication Foundation (WCF) poskytuje následující prvky vazby zabezpečení:
Další jsou volitelné vzory zpráv určené elementy vazby:
Dále jsou volitelné elementy vazby upgradů nebo pomocných prvků přenosu:
Další je požadovaný element vazby kódování zpráv. Můžete použít vlastní přenos nebo jednu z následujících vazeb kódování zpráv:
V dolní části je požadovaný transportní prvek. Můžete použít vlastní přenos nebo některý z elementů transportní vazby, které poskytuje Wcf (Windows Communication Foundation):
Následující tabulka shrnuje možnosti pro jednotlivé vrstvy.
Vrstva | Možnosti | Vyžadováno |
---|---|---|
Tok transakcí | TransactionFlowBindingElement | No |
Spolehlivost | ReliableSessionBindingElement | No |
Zabezpečení | Symetrické, Asymetrické, Transport-Level | No |
Změna obrazce | CompositeDuplexBindingElement | No |
Upgrady přenosu | Stream SSL, stream Windows, Peer Resolver | No |
Encoding | Text, Binární, MTOM, Vlastní | Yes |
Přenos | TCP, pojmenované kanály, HTTP, HTTPS, varianty MSMQ, vlastní | Yes |
Kromě toho můžete definovat vlastní prvky vazby a vložit je mezi libovolnou z výše definovaných vrstev.
Diskuzi o tom, jak použít vlastní vazbu k úpravě vazby poskytované systémem, najdete v tématu Postupy: Přizpůsobení vazby System-Provided.
Poznámka
Při volání služby WCF sestavené pomocí rozhraní .NET Framework 4.0 nebo novější z klientské aplikace WCF sestavené pomocí rozhraní .NET Framework 3.5 nebo starší konfigurační soubor vygenerovaný svcutil.exe nebo přidání odkazu na službu ze sady Visual Studio bude obsahovat atribut validity v konfiguraci vazby. Modul runtime rozhraní .NET Framework 3.5 tento atribut nerozpozná a aplikace vyvolá ConfigurationErrorsException zprávu s informací o nerozpoznané platnosti atributu. Pokud chcete tento problém vyřešit, odeberte atribut validity z konfigurace vazby.
Konstruktory
CustomBinding() |
Inicializuje novou instanci CustomBinding třídy . |
CustomBinding(Binding) |
Inicializuje novou instanci CustomBinding třídy z hodnot zadané vazby. |
CustomBinding(BindingElement[]) |
Inicializuje novou instanci CustomBinding třídy z pole elementů vazby. |
CustomBinding(IEnumerable<BindingElement>) |
Inicializuje novou instanci CustomBinding třídy s prvky vazby z kompletního zásobníku kanálu. |
CustomBinding(String) |
Inicializuje novou instanci CustomBinding třídy . |
CustomBinding(String, String, BindingElement[]) |
Inicializuje novou instanci CustomBinding třídy z pole elementů vazby se zadaným názvem a oborem názvů. |
Vlastnosti
CloseTimeout |
Získá nebo nastaví časový interval zadaný pro ukončení připojení před přenos vyvolá výjimku. (Zděděno od Binding) |
Elements |
Získá prvky vazby z vlastní vazby. |
MessageVersion |
Získá verzi zprávy, kterou používají klienti a služby nakonfigurované pomocí vazby. (Zděděno od Binding) |
Name |
Získá nebo nastaví název vazby. (Zděděno od Binding) |
Namespace |
Získá nebo nastaví obor názvů XML vazby. (Zděděno od Binding) |
OpenTimeout |
Získá nebo nastaví časový interval zadaný pro připojení k otevření před přenos vyvolá výjimku. (Zděděno od Binding) |
ReceiveTimeout |
Získá nebo nastaví časový interval, kdy připojení může zůstat neaktivní, během které nejsou přijaty žádné zprávy aplikace, před jeho ukončením. (Zděděno od Binding) |
Scheme |
Získá schéma identifikátoru URI pro přenos používaný vlastní vazbou. |
SendTimeout |
Získá nebo nastaví časový interval zadaný pro operaci zápisu dokončit před přenos vyvolá výjimku. (Zděděno od Binding) |
Metody
BuildChannelFactory<TChannel>(BindingParameterCollection) |
Sestaví zásobník pro vytváření kanálů na klientovi, který vytvoří zadaný typ kanálu a splňuje funkce určené kolekcí parametrů vazby. (Zděděno od Binding) |
BuildChannelFactory<TChannel>(Object[]) |
Sestaví zásobník pro vytváření kanálů na klientovi, který vytvoří zadaný typ kanálu a vyhovuje funkcím určeným polem objektů. (Zděděno od Binding) |
BuildChannelListener<TChannel>(BindingParameterCollection) |
Sestaví naslouchací proces kanálu ve službě, která přijímá zadaný typ kanálu a splňuje funkce určené kolekcí parametrů vazby. (Zděděno od Binding) |
BuildChannelListener<TChannel>(Object[]) |
Sestaví naslouchací proces kanálu ve službě, která přijímá zadaný typ kanálu a splňuje zadané funkce. (Zděděno od Binding) |
BuildChannelListener<TChannel>(Uri, BindingParameterCollection) |
Sestaví naslouchací proces kanálu ve službě, která přijímá zadaný typ kanálu a splňuje zadané funkce. (Zděděno od Binding) |
BuildChannelListener<TChannel>(Uri, Object[]) |
Sestaví naslouchací proces kanálu ve službě, která přijímá zadaný typ kanálu a splňuje zadané funkce. (Zděděno od Binding) |
BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection) |
Sestaví naslouchací proces kanálu ve službě, která přijímá zadaný typ kanálu a splňuje zadané funkce. (Zděděno od Binding) |
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection) |
Sestaví naslouchací proces kanálu ve službě, která přijímá zadaný typ kanálu a splňuje zadané funkce. (Zděděno od Binding) |
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[]) |
Sestaví naslouchací proces kanálu ve službě, která přijímá zadaný typ kanálu a splňuje zadané funkce. (Zděděno od Binding) |
BuildChannelListener<TChannel>(Uri, String, Object[]) |
Sestaví naslouchací proces kanálu ve službě, která přijímá zadaný typ kanálu a splňuje zadané funkce. (Zděděno od Binding) |
CanBuildChannelFactory<TChannel>(BindingParameterCollection) |
Vrátí hodnotu, která označuje, zda aktuální vazba může na klientovi vytvořit zásobník pro vytváření kanálů, který splňuje kolekci zadaných parametrů vazby. (Zděděno od Binding) |
CanBuildChannelFactory<TChannel>(Object[]) |
Vrátí hodnotu, která označuje, zda aktuální vazba může vytvořit zásobník kanálu factory na klientovi, který splňuje požadavky určené polem objektů. (Zděděno od Binding) |
CanBuildChannelListener<TChannel>(BindingParameterCollection) |
Vrátí hodnotu, která označuje, zda aktuální vazba může vytvořit zásobník naslouchacího procesu kanálu ve službě, která splňuje kolekci parametrů vazby zadané. (Zděděno od Binding) |
CanBuildChannelListener<TChannel>(Object[]) |
Vrátí hodnotu, která označuje, zda aktuální vazba může vytvořit zásobník naslouchacího procesu kanálu ve službě, která splňuje kritéria zadaná v poli objektů. (Zděděno od Binding) |
CreateBindingElements() |
Vrátí obecnou kolekci elementů vazby z vlastní vazby. |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetProperty<T>(BindingParameterCollection) |
Vrátí typovaný objekt požadovaný, pokud existuje, z příslušné vrstvy v zásobníku vazby. (Zděděno od Binding) |
GetType() |
Type Získá z aktuální instance. (Zděděno od Object) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
ShouldSerializeName() |
Vrátí, zda má být název vazby serializován. (Zděděno od Binding) |
ShouldSerializeNamespace() |
Vrátí, zda obor názvů vazby má být serializován. (Zděděno od Binding) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |