WSHttpBindingBase Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Fornisce la classe base con i membri comuni a WSHttpBinding e .WSFederationHttpBinding
public ref class WSHttpBindingBase abstract : System::ServiceModel::Channels::Binding
public ref class WSHttpBindingBase abstract : System::ServiceModel::Channels::Binding, System::ServiceModel::Channels::IBindingRuntimePreferences
public abstract class WSHttpBindingBase : System.ServiceModel.Channels.Binding
public abstract class WSHttpBindingBase : System.ServiceModel.Channels.Binding, System.ServiceModel.Channels.IBindingRuntimePreferences
type WSHttpBindingBase = class
inherit Binding
type WSHttpBindingBase = class
inherit Binding
interface IBindingRuntimePreferences
Public MustInherit Class WSHttpBindingBase
Inherits Binding
Public MustInherit Class WSHttpBindingBase
Inherits Binding
Implements IBindingRuntimePreferences
- Ereditarietà
- Derivato
- Implementazioni
Esempio
Nell'esempio seguente viene illustrato come usare la funzionalità fornita dalla WSHttpBindingBase classe con le classi WSHttpBinding derivate e WSFederationHttpBinding.
// Define a service contract for the calculator.
[ServiceContract()]
public interface ICalculator
{
[OperationContract(IsOneWay = false)]
double Add(double n1, double n2);
[OperationContract(IsOneWay = false)]
double Subtract(double n1, double n2);
[OperationContract(IsOneWay = false)]
double Multiply(double n1, double n2);
[OperationContract(IsOneWay = false)]
double Divide(double n1, double n2);
}
// Service class which implements the service contract.
public class CalculatorService : ICalculator
{
public double Add(double n1, double n2)
{
double result = n1 + n2;
return result;
}
public double Subtract(double n1, double n2)
{
double result = n1 - n2;
return result;
}
public double Multiply(double n1, double n2)
{
double result = n1 * n2;
return result;
}
public double Divide(double n1, double n2)
{
double result = n1 / n2;
return result;
}
// Create and configure bindings within this EXE console application.
public static void Main()
{
// Create a WSHttpBinding
WSHttpBinding binding1 = new WSHttpBinding();
binding1.BypassProxyOnLocal = true;
EnvelopeVersion envelopeVersion =
binding1.EnvelopeVersion;
HostNameComparisonMode hostnameComparisonMode =
binding1.HostNameComparisonMode;
long maxBufferPoolSize =
binding1.MaxBufferPoolSize;
long maxReceivedMessageSize =
binding1.MaxReceivedMessageSize;
WSMessageEncoding messageEncoding =
binding1.MessageEncoding;
Uri proxyAddress =
binding1.ProxyAddress;
XmlDictionaryReaderQuotas readerQuotas =
binding1.ReaderQuotas;
OptionalReliableSession reliableSession =
binding1.ReliableSession;
string scheme = binding1.Scheme;
Encoding textEncoding =
binding1.TextEncoding;
bool transactionFlow =
binding1.TransactionFlow;
bool useDefaultWebProxy =
binding1.UseDefaultWebProxy;
BindingElementCollection bindingElements =
binding1.CreateBindingElements();
// Set WSHttpBinding binding property values
binding1.Name = "Binding1";
binding1.HostNameComparisonMode =
HostNameComparisonMode.StrongWildcard;
binding1.Security.Mode = SecurityMode.Message;
binding1.ReliableSession.Enabled = false;
binding1.TransactionFlow = false;
// binding1.Security.Message.DefaultProtectionLevel = System.Net.Security.ProtectionLevel.EncryptAndSign;
// Enumerate properties of the binding1.
Console.WriteLine("WSHttpBinding binding1 properties:");
Console.WriteLine(" - name:\t\t\t{0}", binding1.Name);
Console.WriteLine(" - hostname comparison:\t{0}", binding1.HostNameComparisonMode);
Console.WriteLine(" - security mode:\t\t{0}", binding1.Security.Mode);
Console.WriteLine(" - RM enabled:\t\t{0}", binding1.ReliableSession.Enabled);
Console.WriteLine(" - transaction flow:\t{0}", binding1.TransactionFlow);
//Console.WriteLine(" - message security:\t{0}", binding1.Security.Message.DefaultProtectionLevel);
Console.WriteLine(" - transport scheme:\t{0}", binding1.Scheme);
Console.WriteLine(" - max message size:\t{0}", binding1.MaxReceivedMessageSize);
Console.WriteLine(" - default text encoding:\t{0}", binding1.TextEncoding);
Console.WriteLine();
// Create a WSFederationBinding with a message security mode
// and with a reliable session enabled.
WSFederationHttpBinding binding3 = new WSFederationHttpBinding(WSFederationHttpSecurityMode.Message, true);
// Enumerate properties of the binding2.
Console.WriteLine("WSFederationBinding binding3 properties:");
Console.WriteLine(" - security mode:\t\t{0}", binding3.Security.Mode);
Console.WriteLine(" - RM enabled:\t\t{0}", binding3.ReliableSession.Enabled);
Console.WriteLine();
Console.WriteLine("Press <ENTER> to terminate.");
Console.ReadLine();
}
static void SnippetReceiveSynchronously ()
{
WSHttpBinding binding = new WSHttpBinding();
IBindingRuntimePreferences s =
binding.GetProperty<IBindingRuntimePreferences>
(new BindingParameterCollection());
bool receiveSynchronously = s.ReceiveSynchronously;
}
}
' Define a service contract for the calculator.
<ServiceContract()> _
Public Interface ICalculator
<OperationContract(IsOneWay := False)> _
Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double
<OperationContract(IsOneWay := False)> _
Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double
<OperationContract(IsOneWay := False)> _
Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double
<OperationContract(IsOneWay := False)> _
Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double
End Interface
' Service class which implements the service contract.
Public Class CalculatorService
Implements ICalculator
Public Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double Implements ICalculator.Add
Dim result = n1 + n2
Return result
End Function
Public Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double Implements ICalculator.Subtract
Dim result = n1 - n2
Return result
End Function
Public Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double Implements ICalculator.Multiply
Dim result = n1 * n2
Return result
End Function
Public Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double Implements ICalculator.Divide
Dim result = n1 / n2
Return result
End Function
' Create and configure bindings within this EXE console application.
Public Shared Sub Main()
' Create a WSHttpBinding
Dim binding1 As New WSHttpBinding()
binding1.BypassProxyOnLocal = True
Dim envelopeVersion As EnvelopeVersion = binding1.EnvelopeVersion
Dim hostnameComparisonMode As HostNameComparisonMode = binding1.HostNameComparisonMode
Dim maxBufferPoolSize = binding1.MaxBufferPoolSize
Dim maxReceivedMessageSize = binding1.MaxReceivedMessageSize
Dim messageEncoding As WSMessageEncoding = binding1.MessageEncoding
Dim proxyAddress As Uri = binding1.ProxyAddress
Dim readerQuotas As XmlDictionaryReaderQuotas = binding1.ReaderQuotas
Dim reliableSession As OptionalReliableSession = binding1.ReliableSession
Dim scheme = binding1.Scheme
Dim textEncoding = binding1.TextEncoding
Dim transactionFlow = binding1.TransactionFlow
Dim useDefaultWebProxy = binding1.UseDefaultWebProxy
Dim bindingElements As BindingElementCollection = binding1.CreateBindingElements()
' Set WSHttpBinding binding property values
binding1.Name = "Binding1"
binding1.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard
binding1.Security.Mode = SecurityMode.Message
binding1.ReliableSession.Enabled = False
binding1.TransactionFlow = False
' binding1.Security.Message.DefaultProtectionLevel = System.Net.Security.ProtectionLevel.EncryptAndSign;
' Enumerate properties of the binding1.
Console.WriteLine("WSHttpBinding binding1 properties:")
Console.WriteLine(" - name:" & Constants.vbTab + Constants.vbTab + Constants.vbTab & "{0}", binding1.Name)
Console.WriteLine(" - hostname comparison:" & Constants.vbTab & "{0}", binding1.HostNameComparisonMode)
Console.WriteLine(" - security mode:" & Constants.vbTab + Constants.vbTab & "{0}", binding1.Security.Mode)
Console.WriteLine(" - RM enabled:" & Constants.vbTab + Constants.vbTab & "{0}", binding1.ReliableSession.Enabled)
Console.WriteLine(" - transaction flow:" & Constants.vbTab & "{0}", binding1.TransactionFlow)
'Console.WriteLine(" - message security:\t{0}", binding1.Security.Message.DefaultProtectionLevel);
Console.WriteLine(" - transport scheme:" & Constants.vbTab & "{0}", binding1.Scheme)
Console.WriteLine(" - max message size:" & Constants.vbTab & "{0}", binding1.MaxReceivedMessageSize)
Console.WriteLine(" - default text encoding:" & Constants.vbTab & "{0}", binding1.TextEncoding)
Console.WriteLine()
' Create a WSFederationBinding with a message security mode
' and with a reliable session enabled.
Dim binding3 As New WSFederationHttpBinding(WSFederationHttpSecurityMode.Message, True)
' Enumerate properties of the binding2.
Console.WriteLine("WSFederationBinding binding3 properties:")
Console.WriteLine(" - security mode:" & Constants.vbTab + Constants.vbTab & "{0}", binding3.Security.Mode)
Console.WriteLine(" - RM enabled:" & Constants.vbTab + Constants.vbTab & "{0}", binding3.ReliableSession.Enabled)
Console.WriteLine()
Console.WriteLine("Press <ENTER> to terminate.")
Console.ReadLine()
End Sub
Private Shared Sub SnippetReceiveSynchronously()
Dim binding As New WSHttpBinding()
Dim s As IBindingRuntimePreferences = binding.GetProperty(Of IBindingRuntimePreferences) (New BindingParameterCollection())
Dim receiveSynchronously = s.ReceiveSynchronously
End Sub
End Class
Commenti
WSHttpBindingBase fornisce alcune funzionalità di base per le associazioni usate per configurare servizi Web sicuri, affidabili e interoperabili, ad esempio quelli implementati da WSHttpBinding per i contratti di servizio non duplex e, in particolare, per il protocollo sicuro e interoperabile WSFederationHttpBinding che supporta il protocollo WS-Federation.
Per impostazione predefinita, genera uno stack di runtime che usa WS-Security per la sicurezza e l'autenticazione dei messaggi, HTTP per il recapito dei messaggi e una codifica di messaggi di testo/XML. Può essere configurato per usare anche WS-ReliableMessaging per l'affidabilità.
L'uso di WS-ReliableMessaging è configurabile usando il parametro facoltativo reliableSessionEnabled .
Costruttori
| Nome | Descrizione |
|---|---|
| WSHttpBindingBase() |
Inizializza una nuova istanza della classe WSHttpBindingBase. |
| WSHttpBindingBase(Boolean) |
Inizializza una nuova istanza della WSHttpBindingBase classe con un valore che indica se è abilitata una sessione affidabile. |
Proprietà
| Nome | Descrizione |
|---|---|
| BypassProxyOnLocal |
Ottiene o imposta un valore che indica se ignorare il server proxy per gli indirizzi locali. |
| CloseTimeout |
Ottiene o imposta l'intervallo di tempo specificato per la chiusura di una connessione prima che il trasporto generi un'eccezione. (Ereditato da Binding) |
| EnvelopeVersion |
Ottiene la versione di SOAP utilizzata per i messaggi elaborati da questa associazione. |
| HostNameComparisonMode |
Ottiene o imposta un valore che indica se il nome host viene utilizzato per raggiungere il servizio quando corrisponde all'URI. |
| MaxBufferPoolSize |
Ottiene o imposta la quantità massima di memoria allocata, in byte, per la gestione buffer che gestisce i buffer richiesti dagli endpoint utilizzando questa associazione. |
| MaxReceivedMessageSize |
Ottiene o imposta le dimensioni massime, in byte, per un messaggio che può essere elaborato dall'associazione. |
| MessageEncoding |
Ottiene o imposta un valore che indica se MTOM o Text/XML viene utilizzato per codificare i messaggi SOAP. |
| MessageVersion |
Ottiene la versione del messaggio utilizzata dai client e dai servizi configurati con l'associazione. (Ereditato da Binding) |
| Name |
Ottiene o imposta il nome dell'associazione. (Ereditato da Binding) |
| Namespace |
Ottiene o imposta lo spazio dei nomi XML dell'associazione. (Ereditato da Binding) |
| OpenTimeout |
Ottiene o imposta l'intervallo di tempo specificato per l'apertura di una connessione prima che il trasporto generi un'eccezione. (Ereditato da Binding) |
| ProxyAddress |
Ottiene o imposta l'indirizzo URI del proxy HTTP. |
| ReaderQuotas |
Ottiene o imposta vincoli sulla complessità dei messaggi SOAP che possono essere elaborati dagli endpoint configurati con questa associazione. |
| ReceiveTimeout |
Ottiene o imposta l'intervallo di tempo in cui una connessione può rimanere inattiva, durante la quale non vengono ricevuti messaggi dell'applicazione, prima che venga eliminata. (Ereditato da Binding) |
| ReliableSession |
Ottiene un oggetto che fornisce accesso pratico alle proprietà di un elemento di associazione di sessione affidabile disponibile quando si utilizza una delle associazioni fornite dal sistema. |
| Scheme |
Ottiene lo schema di trasporto URI per i canali e i listener configurati con questa associazione. |
| SendTimeout |
Ottiene o imposta l'intervallo di tempo specificato per il completamento di un'operazione di scrittura prima che il trasporto generi un'eccezione. (Ereditato da Binding) |
| TextEncoding |
Ottiene o imposta la codifica dei caratteri utilizzata per il testo del messaggio. |
| TransactionFlow |
Ottiene o imposta un valore che indica se questa associazione deve supportare il flusso di WS-Transactions. |
| UseDefaultWebProxy |
Ottiene o imposta un valore che indica se il proxy HTTP configurato automaticamente del sistema deve essere utilizzato, se disponibile. |
Metodi
| Nome | Descrizione |
|---|---|
| BuildChannelFactory<TChannel>(BindingParameterCollection) |
Compila lo stack channel factory nel client che crea un tipo di canale specificato e che soddisfa le funzionalità specificate da una raccolta di parametri di associazione. (Ereditato da Binding) |
| BuildChannelFactory<TChannel>(Object[]) |
Compila lo stack channel factory nel client che crea un tipo di canale specificato e che soddisfa le funzionalità specificate da una matrice di oggetti. (Ereditato da Binding) |
| BuildChannelListener<TChannel>(BindingParameterCollection) |
Compila il listener del canale nel servizio che accetta un tipo di canale specificato e che soddisfa le funzionalità specificate da una raccolta di parametri di associazione. (Ereditato da Binding) |
| BuildChannelListener<TChannel>(Object[]) |
Compila il listener del canale nel servizio che accetta un tipo di canale specificato e che soddisfa le funzionalità specificate. (Ereditato da Binding) |
| BuildChannelListener<TChannel>(Uri, BindingParameterCollection) |
Compila il listener del canale nel servizio che accetta un tipo di canale specificato e che soddisfa le funzionalità specificate. (Ereditato da Binding) |
| BuildChannelListener<TChannel>(Uri, Object[]) |
Compila il listener del canale nel servizio che accetta un tipo di canale specificato e che soddisfa le funzionalità specificate. (Ereditato da Binding) |
| BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection) |
Compila il listener del canale nel servizio che accetta un tipo di canale specificato e che soddisfa le funzionalità specificate. (Ereditato da Binding) |
| BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection) |
Compila il listener del canale nel servizio che accetta un tipo di canale specificato e che soddisfa le funzionalità specificate. (Ereditato da Binding) |
| BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[]) |
Compila il listener del canale nel servizio che accetta un tipo di canale specificato e che soddisfa le funzionalità specificate. (Ereditato da Binding) |
| BuildChannelListener<TChannel>(Uri, String, Object[]) |
Compila il listener del canale nel servizio che accetta un tipo di canale specificato e che soddisfa le funzionalità specificate. (Ereditato da Binding) |
| CanBuildChannelFactory<TChannel>(BindingParameterCollection) |
Restituisce un valore che indica se l'associazione corrente può compilare uno stack channel factory nel client che soddisfa la raccolta di parametri di associazione specificati. (Ereditato da Binding) |
| CanBuildChannelFactory<TChannel>(Object[]) |
Restituisce un valore che indica se l'associazione corrente può compilare uno stack channel factory nel client che soddisfa i requisiti specificati da una matrice di oggetti. (Ereditato da Binding) |
| CanBuildChannelListener<TChannel>(BindingParameterCollection) |
Restituisce un valore che indica se l'associazione corrente può compilare uno stack di listener del canale nel servizio che soddisfa la raccolta di parametri di associazione specificati. (Ereditato da Binding) |
| CanBuildChannelListener<TChannel>(Object[]) |
Restituisce un valore che indica se l'associazione corrente può compilare uno stack di listener del canale nel servizio che soddisfa i criteri specificati in una matrice di oggetti. (Ereditato da Binding) |
| CreateBindingElements() |
Restituisce una raccolta ordinata di elementi di associazione contenuti nell'associazione corrente. |
| CreateMessageSecurity() |
Se implementato in una classe derivata, restituisce l'oggetto SecurityBindingElement dall'associazione corrente. |
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
| GetProperty<T>(BindingParameterCollection) |
Restituisce un oggetto tipizzato richiesto, se presente, dal livello appropriato nello stack di binding. (Ereditato da Binding) |
| GetTransport() |
Se implementato in una classe derivata, restituisce l'elemento di associazione di trasporto dall'associazione corrente. |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| ShouldSerializeName() |
Restituisce un valore che indica se il nome dell'associazione deve essere serializzato. (Ereditato da Binding) |
| ShouldSerializeNamespace() |
Restituisce un valore che indica se lo spazio dei nomi dell'associazione deve essere serializzato. (Ereditato da Binding) |
| ShouldSerializeReaderQuotas() |
Restituisce un valore che indica se la ReaderQuotas proprietà è stata modificata rispetto al valore predefinito e deve essere serializzata. |
| ShouldSerializeReliableSession() |
Restituisce un valore che indica se la ReliableSession proprietà è stata modificata rispetto al valore predefinito e deve essere serializzata. |
| ShouldSerializeTextEncoding() |
Restituisce un valore che indica se la TextEncoding proprietà è stata modificata rispetto al valore predefinito e deve essere serializzata. |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| IBindingRuntimePreferences.ReceiveSynchronously |
Ottiene un valore che indica se le richieste in ingresso vengono gestite in modo sincrono o asincrono. |