Questa documentazione è stata archiviata e non viene gestita.

Classe NetNamedPipeBinding

Aggiornamento: novembre 2007

Fornisce un'associazione protetta e affidabile, ottimizzata per la comunicazione su computer.

Spazio dei nomi:  System.ServiceModel
Assembly:  System.ServiceModel (in System.ServiceModel.dll)

public class NetNamedPipeBinding : Binding, 
	IBindingRuntimePreferences
public class NetNamedPipeBinding extends Binding implements IBindingRuntimePreferences
public class NetNamedPipeBinding extends Binding implements IBindingRuntimePreferences

NetNamedPipeBinding genera per impostazione predefinita uno stack di comunicazione in fase di esecuzione che utilizza la sicurezza del trasporto, le named pipe per il recapito dei messaggi e una codifica binaria dei messaggi. Tale associazione è una scelta fornita da Windows Communication Foundation (WCF) idonea per la comunicazione su computer. Supporta inoltre le transazioni.

La configurazione predefinita per NetNamedPipeBinding è simile alla configurazione fornita da NetTcpBinding, ma è più semplice poiché l'implementazione WCF è destinata solo all'utilizzo su computer e di conseguenza le funzionalità esposte sono minori. La differenza più evidente è che per l'impostazione di SecurityMode sono disponibili solo le opzioni None e Transport. Il supporto della protezione SOAP non è incluso fra le opzioni. Il comportamento di protezione può essere configurato utilizzando il parametro facoltativo securityMode nel costruttore NetNamedPipeBinding(NetNamedPipeSecurityMode).

Nell'esempio seguente viene illustrata la parte del file di configurazione che contiene la sezione per NetNamedPipeBinding con i valori impostati sulle impostazioni predefinite.

<bindings>
  <!-- 
        Following is the expanded configuration section for a NetNamedPipeBinding.
        Each property is configured with the default value.
     -->
  <netNamedPipeBinding>
    <binding name="Binding1" 
             hostNameComparisonMode="StrongWildcard" 
             maxBufferSize="65536"
             maxConnections="10"
             maxReceivedMessageSize="65536"
             receiveTimeout="00:10:00"
             transactionFlow="false">
      <security mode="Transport">
      </security>
    </binding>
  </netNamedPipeBinding>
</bindings>


Nell'esempio seguente viene illustrato come utilizzare la classe NetNamedPipeBinding a livello di codice.

    [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;


	}
    }


System.Object
  System.ServiceModel.Channels.Binding
    System.ServiceModel.NetNamedPipeBinding

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

.NET Framework

Supportato in: 3.5, 3.0
Mostra: