WSHttpBindingBase 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供成員通用於 WSHttpBinding 和 WSFederationHttpBinding 的基底類別 (Base Class)。
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
- 繼承
- 衍生
- 實作
範例
下列範例會示範如何使用具有衍生類別 (WSHttpBindingBase 和 WSHttpBinding ) 的 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
備註
WSHttpBindingBase 提供一些用來設定安全性、可靠、互通 Web 服務所使用之繫結的基本功能,例如 WSHttpBinding 針對非雙工服務合約的實作,還有特別針對支援 WS-Federation 通訊協定所實作的安全與互通 WSFederationHttpBinding。
根據預設,它會產生使用 WS-Security 訊息安全性和驗證、HTTP 訊息傳遞以及 Text/XML 訊息編碼的執行階段堆疊。 它也可以設定使用 WS-ReliableMessaging 加強可靠性。
您可以使用選擇性的 reliableSessionEnabled
參數,設定是否要使用 WS-ReliableMessaging。
建構函式
WSHttpBindingBase() |
初始化 WSHttpBindingBase 類別的新執行個體。 |
WSHttpBindingBase(Boolean) |
以指示可靠工作階段是否啟用的值,初始化 WSHttpBindingBase 類別。 |
屬性
BypassProxyOnLocal |
取得或設定值,這個值表示是否略過 Proxy 伺服器而改用本機位址。 |
CloseTimeout |
取得或設定針對連線所提供的時間間隔 (此連線要在傳輸引發例外狀況之前關閉)。 (繼承來源 Binding) |
EnvelopeVersion |
取得 SOAP 的版本,這個版本是用於由此繫結處理的訊息。 |
HostNameComparisonMode |
取得或設定值,這個值會指出在比對 URI 時此主機名稱是否會用來取用服務。 |
MaxBufferPoolSize |
取得或設定配置供訊息緩衝區管理員使用的最大記憶體量 (以位元組為單位),緩衝區管理員管理使用此繫結之端點所需緩衝區。 |
MaxReceivedMessageSize |
取得或設定可由繫結處理之訊息的大小上限 (以位元組為單位)。 |
MessageEncoding |
取得或設定是否要使用 MTOM 或 Text/XML 來編碼 SOAP 訊息。 |
MessageVersion |
取得用戶端所使用的訊息版本及使用繫結所設定的服務。 (繼承來源 Binding) |
Name |
取得或設定繫結的名稱。 (繼承來源 Binding) |
Namespace |
取得或設定繫結的 XML 命名空間。 (繼承來源 Binding) |
OpenTimeout |
取得或設定針對連線所提供的時間間隔 (此連線要在傳輸引發例外狀況之前開啟)。 (繼承來源 Binding) |
ProxyAddress |
取得或設定 HTTP Proxy 的 URI 位址。 |
ReaderQuotas |
取得或設定 SOAP 訊息複雜性的條件約束,而這些條件約束可由以此繫結所設定的端點處理。 |
ReceiveTimeout |
取得或設定連線中斷之前,可以維持非作用狀態的時間間隔 (在此期間未接收應用程式訊息)。 (繼承來源 Binding) |
ReliableSession |
取得物件,這個物件可方便您存取可靠工作階段繫結項目的屬性,只要使用其中一個系統提供的繫結,就可以使用這些屬性。 |
Scheme |
取得使用這項繫結所設定之通道與接聽程式的 URI 傳輸配置。 |
SendTimeout |
取得或設定針對寫入作業所提供的時間間隔 (此作業要在傳輸引發例外狀況之前完成)。 (繼承來源 Binding) |
TextEncoding |
取得或設定用於訊息文字的字元編碼。 |
TransactionFlow |
取得或設定值,這個值會指出此繫結程序是否應支援流動 WS-Transactions。 |
UseDefaultWebProxy |
取得或設定值,這個值會指出是否應使用系統自動設定的 HTTP Proxy (如果有的話)。 |
方法
明確介面實作
IBindingRuntimePreferences.ReceiveSynchronously |
取得值,這個值會指出要以同步或非同步方式處理傳入要求。 |