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 |
获取一个值,该值指示是同步处理传入请求还是异步处理传入请求。 |