Condividi tramite


NetTcpBinding predefinito

L'esempio predefinito illustra l'uso dell'associazioneNetTcpBinding. Questo esempio si basa sull'Introduzione che implementa un servizio calcolatrice. In questo esempio, il servizio è ospitato autonomamente. Sia il client che il servizio sono applicazioni console.

Annotazioni

La procedura di installazione e le istruzioni di compilazione per questo esempio si trovano alla fine di questo argomento.

L'associazione viene specificata nei file di configurazione per il client e il servizio. Il tipo di associazione viene specificato nell'attributo binding dell'elemento <endpoint> , come illustrato nella configurazione di esempio seguente.

<endpoint address=""
          binding="netTcpBinding"
          contract="Microsoft.ServiceModel.Samples.ICalculator" />

L'esempio precedente illustra come configurare un endpoint per l'uso dell'associazione netTcpBinding con le impostazioni predefinite. Se si vuole configurare l'associazione netTcpBinding e modificarne alcune impostazioni, è necessario definire una configurazione di associazione. L'endpoint deve riferirsi alla configurazione del binding per nome utilizzando l'attributo bindingConfiguration. In questo esempio la configurazione dell'associazione è denominata Binding1 e viene definita come illustrato nella configurazione di esempio seguente.

<services>
  <service name="Microsoft.ServiceModel.Samples.CalculatorService"
           behaviorConfiguration="CalculatorServiceBehavior">
    ...
    <endpoint address=""
              binding="netTcpBinding"
              bindingConfiguration="Binding1"
              contract="Microsoft.ServiceModel.Samples.ICalculator" />
    ...
  </service>
</services>

<bindings>
  <netTcpBinding>
    <binding name="Binding1"
             closeTimeout="00:01:00"
             openTimeout="00:01:00"
             receiveTimeout="00:10:00"
             sendTimeout="00:01:00"
             transactionFlow="false"
             transferMode="Buffered"
             transactionProtocol="OleTransactions"
             hostNameComparisonMode="StrongWildcard"
             listenBacklog="10"
             maxBufferPoolSize="524288"
             maxBufferSize="65536"
             maxConnections="10"
             maxReceivedMessageSize="65536">
      <readerQuotas maxDepth="32"
                    maxStringContentLength="8192"
                    maxArrayLength="16384"
                    maxBytesPerRead="4096"
                    maxNameTableCharCount="16384" />
      <reliableSession ordered="true"
                       inactivityTimeout="00:10:00"
                       enabled="false" />
      <security mode="Transport">
        <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
      </security>
    </binding>
  </netTcpBinding>
</bindings>

Quando si esegue l'esempio, le richieste e le risposte dell'operazione vengono visualizzate nella finestra della console client. Premere INVIO nella finestra del client per chiudere il client.

Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714

Press ENTER to terminate client.

Per configurare, compilare ed eseguire l'esempio

  1. Installare ASP.NET 4.0 usando il comando seguente.

    %windir%\Microsoft.NET\Framework\v4.0.XXXXX\aspnet_regiis.exe /i /enable
    
  2. Assicurati di aver eseguito la procedura di installazione di One-Time per gli esempi di Windows Communication Foundation.

  3. Per compilare l'edizione C# o Visual Basic .NET della soluzione, seguire le istruzioni in Compilazione degli esempi di Windows Communication Foundation.

  4. Per eseguire l'esempio in una configurazione con computer singolo o incrociato, seguire le istruzioni riportate in Esecuzione degli esempi di Windows Communication Foundation.

    Annotazioni

    Poiché il server è self-hosted, è necessario specificare un'identità nel file di App.config del client per eseguire l'esempio in una configurazione tra computer.

    <client>
      <endpoint name=""
          address="net.tcp://servername:9000/servicemodelsamples/service"
          binding="netTcpBinding"
          contract="Microsoft.ServiceModel.Samples.ICalculator">
            <identity>
              <userPrincipalName value = "user_name@service_domain"/>
            </identity>
      </endpoint>
    </client>