CustomBinding Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Definieert een binding uit een lijst met bindingselementen.
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
- Overname
- Kenmerken
Voorbeelden
In het volgende voorbeeld ziet u hoe u een CustomBinding object maakt met behulp van een ReliableSessionBindingElement en een 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
Opmerkingen
Gebruik een aangepaste binding wanneer een van de door het systeem geleverde bindingen niet voldoet aan de vereisten van uw service. Een aangepaste binding kan bijvoorbeeld worden gebruikt om het gebruik van een nieuw transport of een nieuwe encoder op een service-eindpunt mogelijk te maken.
Een aangepaste binding wordt samengesteld met behulp van een van de CustomBinding uit een verzameling bindingselementen die in een specifieke volgorde zijn gestapeld:
Bovenaan is een optionele optie TransactionFlowBindingElement waarmee transacties kunnen worden gestroomd.
Hierna volgt een optioneel ReliableSessionBindingElement mechanisme voor sessies en ordenen, zoals gedefinieerd in de specificatie van de WS-ReliableMessaging. Dit begrip van een sessie kan SOAP- en transporttussenpersonen kruisen.
Hierna volgt een optioneel beveiligingsbindingselement dat beveiligingsfuncties biedt, zoals autorisatie, verificatie, beveiliging en vertrouwelijkheid. De volgende beveiligingsbindingselementen worden geleverd door Windows Communication Foundation (WCF):
Hierna volgen de optionele berichtpatronen die zijn opgegeven door bindingselementen:
Hierna volgen de optionele transportupgrades/helpers bindingselementen:
Vervolgens is een verplicht bindingselement voor berichtcodering. U kunt uw eigen transport gebruiken of een van de volgende berichtcoderingsbindingen gebruiken:
Onderaan is een vereist transportelement. U kunt uw eigen transport gebruiken of een van de transportbindingselementen van Windows Communication Foundation (WCF) gebruiken:
De volgende tabel bevat een overzicht van de opties voor elke laag.
| Laag | Opties | Required |
|---|---|---|
| Transactiestroom | TransactionFlowBindingElement | No |
| Reliability | ReliableSessionBindingElement | No |
| Beveiliging | Symmetrisch, Asymmetrisch, Transport-Level | No |
| Vorm wijzigen | CompositeDuplexBindingElement | No |
| Transportupgrades | SSL-stream, Windows-stream, Peer Resolver | No |
| Codering | Tekst, Binair, MTOM, Aangepast | Ja |
| Transport | TCP, Named Pipes, HTTP, HTTPS, smaken van MSMQ, Aangepast | Ja |
Daarnaast kunt u uw eigen bindingselementen definiƫren en deze invoegen tussen een van de voorgaande gedefinieerde lagen.
Zie Een System-Provided Binding aanpassen voor een discussie over het gebruik van een aangepaste binding om een door het systeem geleverde binding te wijzigen.
Note
Wanneer u een WCF-service aanroept die is gebouwd met .NET Framework 4.0 of hoger vanuit een WCF-clienttoepassing die is gebouwd met .NET Framework 3.5 of eerder, bevat het configuratiebestand dat is gegenereerd door svcutil.exe of het toevoegen van een servicereferentie uit Visual Studio het geldigheidskenmerk in de bindingsconfiguratie. Dit kenmerk wordt niet herkend door de .NET Framework 3.5-runtime en de toepassing heeft een ConfigurationErrorsException gegenereerd met het bericht 'Ongeldige geldigheid van kenmerk'. Als tijdelijke oplossing voor dit probleem verwijdert u het geldigheidskenmerk uit de bindingsconfiguratie.
Constructors
| Name | Description |
|---|---|
| CustomBinding() |
Initialiseert een nieuw exemplaar van de CustomBinding klasse. |
| CustomBinding(Binding) |
Initialiseert een nieuw exemplaar van de CustomBinding klasse op basis van de waarden van een opgegeven binding. |
| CustomBinding(BindingElement[]) |
Initialiseert een nieuw exemplaar van de CustomBinding klasse op basis van een matrix met bindingselementen. |
| CustomBinding(IEnumerable<BindingElement>) |
Initialiseert een nieuw exemplaar van de CustomBinding klasse met de bindingselementen uit een volledige kanaalstack. |
| CustomBinding(String, String, BindingElement[]) |
Initialiseert een nieuw exemplaar van de CustomBinding klasse van een matrix met bindingselementen met een opgegeven naam en naamruimte. |
| CustomBinding(String) |
Initialiseert een nieuw exemplaar van de CustomBinding klasse. |
Eigenschappen
| Name | Description |
|---|---|
| CloseTimeout |
Hiermee haalt u het tijdsinterval op dat is opgegeven voor een verbinding die moet worden gesloten voordat het transport een uitzondering genereert. (Overgenomen van Binding) |
| Elements |
Haalt de bindingselementen van de aangepaste binding op. |
| MessageVersion |
Hiermee haalt u de berichtversie op die wordt gebruikt door clients en services die zijn geconfigureerd met de binding. (Overgenomen van Binding) |
| Name |
Hiermee haalt u de naam van de binding op of stelt u deze in. (Overgenomen van Binding) |
| Namespace |
Hiermee haalt u de XML-naamruimte van de binding op of stelt u deze in. (Overgenomen van Binding) |
| OpenTimeout |
Hiermee haalt u het tijdsinterval op dat is opgegeven voor een verbinding die moet worden geopend voordat het transport een uitzondering genereert. (Overgenomen van Binding) |
| ReceiveTimeout |
Hiermee wordt het tijdsinterval opgehaald of ingesteld dat een verbinding inactief kan blijven, terwijl er geen toepassingsberichten worden ontvangen voordat deze wordt verwijderd. (Overgenomen van Binding) |
| Scheme |
Hiermee haalt u het URI-schema op voor transport dat wordt gebruikt door de aangepaste binding. |
| SendTimeout |
Hiermee haalt u het tijdsinterval op dat is opgegeven voor een schrijfbewerking die moet worden voltooid voordat het transport een uitzondering genereert. (Overgenomen van Binding) |
Methoden
| Name | Description |
|---|---|
| BuildChannelFactory<TChannel>(BindingParameterCollection) |
Bouwt de stack van de kanaalfactory op de client die een opgegeven type kanaal maakt en voldoet aan de functies die zijn opgegeven door een verzameling bindingsparameters. (Overgenomen van Binding) |
| BuildChannelFactory<TChannel>(Object[]) |
Bouwt de stack van de kanaalfactory op de client die een opgegeven type kanaal maakt en voldoet aan de functies die zijn opgegeven door een objectmatrix. (Overgenomen van Binding) |
| BuildChannelListener<TChannel>(BindingParameterCollection) |
Bouwt de kanaallistener op de service die een opgegeven type kanaal accepteert en voldoet aan de functies die zijn opgegeven door een verzameling bindingsparameters. (Overgenomen van Binding) |
| BuildChannelListener<TChannel>(Object[]) |
Bouwt de kanaallistener op de service die een opgegeven type kanaal accepteert en voldoet aan de opgegeven functies. (Overgenomen van Binding) |
| BuildChannelListener<TChannel>(Uri, BindingParameterCollection) |
Bouwt de kanaallistener op de service die een opgegeven type kanaal accepteert en voldoet aan de opgegeven functies. (Overgenomen van Binding) |
| BuildChannelListener<TChannel>(Uri, Object[]) |
Bouwt de kanaallistener op de service die een opgegeven type kanaal accepteert en voldoet aan de opgegeven functies. (Overgenomen van Binding) |
| BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection) |
Bouwt de kanaallistener op de service die een opgegeven type kanaal accepteert en voldoet aan de opgegeven functies. (Overgenomen van Binding) |
| BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection) |
Bouwt de kanaallistener op de service die een opgegeven type kanaal accepteert en voldoet aan de opgegeven functies. (Overgenomen van Binding) |
| BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[]) |
Bouwt de kanaallistener op de service die een opgegeven type kanaal accepteert en voldoet aan de opgegeven functies. (Overgenomen van Binding) |
| BuildChannelListener<TChannel>(Uri, String, Object[]) |
Bouwt de kanaallistener op de service die een opgegeven type kanaal accepteert en voldoet aan de opgegeven functies. (Overgenomen van Binding) |
| CanBuildChannelFactory<TChannel>(BindingParameterCollection) |
Retourneert een waarde die aangeeft of de huidige binding een kanaalfactorystack kan bouwen op de client die voldoet aan de verzameling bindingsparameters die zijn opgegeven. (Overgenomen van Binding) |
| CanBuildChannelFactory<TChannel>(Object[]) |
Retourneert een waarde die aangeeft of de huidige binding een kanaalfactorystack kan bouwen op de client die voldoet aan de vereisten die zijn opgegeven door een objectmatrix. (Overgenomen van Binding) |
| CanBuildChannelListener<TChannel>(BindingParameterCollection) |
Retourneert een waarde die aangeeft of de huidige binding een kanaallistenerstack kan bouwen op de service die voldoet aan de verzameling bindingsparameters die zijn opgegeven. (Overgenomen van Binding) |
| CanBuildChannelListener<TChannel>(Object[]) |
Retourneert een waarde die aangeeft of de huidige binding een kanaallistenerstack kan bouwen op de service die voldoet aan de criteria die zijn opgegeven in een matrix met objecten. (Overgenomen van Binding) |
| CreateBindingElements() |
Retourneert een algemene verzameling bindingselementen van de aangepaste binding. |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetProperty<T>(BindingParameterCollection) |
Retourneert een getypt object dat, indien aanwezig, is aangevraagd vanuit de juiste laag in de bindingsstack. (Overgenomen van Binding) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ShouldSerializeName() |
Retourneert of de naam van de binding moet worden geserialiseerd. (Overgenomen van Binding) |
| ShouldSerializeNamespace() |
Retourneert of de naamruimte van de binding moet worden geserialiseerd. (Overgenomen van Binding) |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |