NetNamedPipeBinding 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供針對電腦通訊最佳化,安全而可靠的繫結。
public ref class NetNamedPipeBinding : System::ServiceModel::Channels::Binding
public ref class NetNamedPipeBinding : System::ServiceModel::Channels::Binding, System::ServiceModel::Channels::IBindingRuntimePreferences
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public class NetNamedPipeBinding : System.ServiceModel.Channels.Binding
public class NetNamedPipeBinding : System.ServiceModel.Channels.Binding, System.ServiceModel.Channels.IBindingRuntimePreferences
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
type NetNamedPipeBinding = class
inherit Binding
type NetNamedPipeBinding = class
inherit Binding
interface IBindingRuntimePreferences
Public Class NetNamedPipeBinding
Inherits Binding
Public Class NetNamedPipeBinding
Inherits Binding
Implements IBindingRuntimePreferences
- 繼承
- 屬性
- 實作
範例
下列範例會示範部分組態檔,其中包含值設為預設值之 NetNamedPipeBinding 的區段。
下列範例會示範如何以程式設計的方式使用 NetNamedPipeBinding 類別。
[ServiceContract(Namespace = "http://UE.Samples")]
public interface ICalculator
{
[OperationContract]
double Add(double n1, double n2);
}
// Service class which implements the service contract.
public class CalculatorService : ICalculator
{
public double Add(double n1, double n2)
{
return n1 + n2;
}
public static void Main()
{
Uri baseAddress = new Uri("http://localhost:8000/uesamples/service");
string address = "net.pipe://localhost/uesamples/calc";
// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress))
{
NetNamedPipeBinding binding = new NetNamedPipeBinding(NetNamedPipeSecurityMode.None);
serviceHost.AddServiceEndpoint(typeof(ICalculator), binding, address);
// Add a mex endpoint
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
smb.HttpGetUrl = new Uri("http://localhost:8001/uesamples");
serviceHost.Description.Behaviors.Add(smb);
long maxBufferPoolSize = binding.MaxBufferPoolSize;
int maxBufferSize = binding.MaxBufferSize;
int maxConnections = binding.MaxConnections;
long maxReceivedMessageSize =
binding.MaxReceivedMessageSize;
NetNamedPipeSecurity security = binding.Security;
string scheme = binding.Scheme;
XmlDictionaryReaderQuotas readerQuotas =
binding.ReaderQuotas;
BindingElementCollection bCollection = binding.CreateBindingElements();
HostNameComparisonMode hostNameComparisonMode =
binding.HostNameComparisonMode;
bool TransactionFlow = binding.TransactionFlow;
TransactionProtocol transactionProtocol =
binding.TransactionProtocol;
EnvelopeVersion envelopeVersion =
binding.EnvelopeVersion;
TransferMode transferMode =
binding.TransferMode;
serviceHost.Open();
Console.WriteLine("The service is ready.");
Console.WriteLine("Press <ENTER> to terminate service.");
Console.WriteLine();
Console.ReadLine();
serviceHost.Close();
}
}
static void SnippetReceiveSynchronously ()
{
NetNamedPipeBinding binding = new NetNamedPipeBinding();
IBindingRuntimePreferences s =
binding.GetProperty<IBindingRuntimePreferences>
(new BindingParameterCollection());
bool receiveSynchronously = s.ReceiveSynchronously;
}
}
備註
根據預設,NetNamedPipeBinding 會產生執行階段通訊堆疊,此堆疊使用傳輸安全性、具名管道 (用於訊息傳遞) 和二進位訊息編碼。 此繫結為適當的 Windows Communication Foundation (WCF) 系統提供的現成選擇,可用於電腦通訊。 它也支援交易。
NetNamedPipeBinding 的預設組態類似於 NetTcpBinding 所提供的組態,但較為簡單,因為 WCF 實作只針對電腦應用,所以公開的功能不多。 最顯著的差異在於,SecurityMode 設定只提供 None 和 Transport 選項。 SOAP 安全性支援並非包含的選項。 您可以使用建構函式 securityMode
中的選擇性 NetNamedPipeBinding(NetNamedPipeSecurityMode) 參數,設定安全性行為。
建構函式
NetNamedPipeBinding() |
初始化 NetNamedPipeBinding 類別的新執行個體。 |
NetNamedPipeBinding(NetNamedPipeSecurityMode) |
使用指定的安全性模式,初始化 NetNamedPipeBinding 類別的執行個體。 |
NetNamedPipeBinding(String) |
使用指定的組態名稱,初始化 NetNamedPipeBinding 類別的新執行個體。 |
屬性
CloseTimeout |
取得或設定針對連線所提供的時間間隔 (此連線要在傳輸引發例外狀況之前關閉)。 (繼承來源 Binding) |
EnvelopeVersion |
取得 SOAP 的版本,用於由此繫結處理的訊息。 |
HostNameComparisonMode |
取得或設定值,這個值會指出在比對 URI 時此主機名稱是否會用來取用服務。 |
MaxBufferPoolSize |
取得或設定記憶體中用於緩衝傳入訊息的位元組數目上限。 |
MaxBufferSize |
取得或設定記憶體中用於緩衝傳入訊息的位元組數目上限。 |
MaxConnections |
取得或設定允許具名管道繫結設定端點允許的連線數量上限,傳入和傳出都納入計算。 |
MaxReceivedMessageSize |
取得或設定由繫結處理之接收訊息的大小上限 (以位元組為單位)。 |
MessageVersion |
取得用戶端所使用的訊息版本及使用繫結所設定的服務。 (繼承來源 Binding) |
Name |
取得或設定繫結的名稱。 (繼承來源 Binding) |
Namespace |
取得或設定繫結的 XML 命名空間。 (繼承來源 Binding) |
OpenTimeout |
取得或設定針對連線所提供的時間間隔 (此連線要在傳輸引發例外狀況之前開啟)。 (繼承來源 Binding) |
ReaderQuotas |
取得或設定 SOAP 訊息複雜性的條件約束,而這些條件約束可由以此繫結所設定的端點處理。 |
ReceiveTimeout |
取得或設定連線中斷之前,可以維持非作用狀態的時間間隔 (在此期間未接收應用程式訊息)。 (繼承來源 Binding) |
Scheme |
取得使用這項繫結所設定之通道與接聽程式的 URI 傳輸配置。 |
Security |
取得物件,指定與此繫結所設定之服務共用的安全性類型。 |
SendTimeout |
取得或設定針對寫入作業所提供的時間間隔 (此作業要在傳輸引發例外狀況之前完成)。 (繼承來源 Binding) |
TransactionFlow |
取得或設定值,這個值會決定交易是否應流動至服務。 |
TransactionProtocol |
取得或設定服務用來使交易流動的交易通訊協定。 |
TransferMode |
取得或設定值,這個值會指出以繫結設定的服務使用訊息傳輸的資料流處理模式 (單一或雙向) 或緩衝處理模式。 |
方法
明確介面實作
IBindingRuntimePreferences.ReceiveSynchronously |
取得值,這個值會指出要以同步或非同步方式處理傳入要求。 |