Adres Ayarlama

Adresleme örneği, uç nokta adreslerinin çeşitli yönlerini ve özelliklerini gösterir. Örnek, Başlarken'i temel alır. Bu örnekte hizmet şirket içinde barındırılır. Hem hizmet hem de istemci konsol uygulamalarıdır. Hizmet, göreli ve mutlak uç nokta adreslerinin birleşimini kullanarak birden çok uç noktayı tanımlar.

Not

Bu örnek için kurulum yordamı ve derleme yönergeleri bu konunun sonunda yer alır.

Hizmet yapılandırma dosyası bir temel adres ve dört uç nokta belirtir. Temel adres, aşağıdaki örnek yapılandırmada gösterildiği gibi service/host/baseAddresses altında add öğesi kullanılarak belirtilir.

<service name="Microsoft.ServiceModel.Samples.CalculatorService"
         behaviorConfiguration="CalculatorServiceBehavior">
  <host>
    <baseAddresses>
      <add baseAddress="http://localhost:8000/ServiceModelSamples/service" />
    </baseAddresses>
  </host>
</service>

Aşağıdaki örnek yapılandırmada gösterilen ilk uç nokta tanımı göreli adresi belirtir; bu da uç nokta adresinin URI oluşturma kurallarına göre temel adresin ve göreli adresin birleşimi olduğu anlamına gelir.

<!-- Empty relative address specified:
     use the base address provided by the host. -->
<!-- The endpoint address is
     http://localhost:8000/ServiceModelSamples/service. -->
<endpoint address=""
          binding="wsHttpBinding"
          contract="Microsoft.ServiceModel.Samples.ICalculator" />

Bu durumda, göreli adres boş (""), bu nedenle uç nokta adresi temel adresle aynıdır. Gerçek uç nokta adresi şeklindedir http://localhost:8000/servicemodelsamples/service.

İkinci uç nokta tanımı, aşağıdaki örnek yapılandırmada gösterildiği gibi göreli bir adres de belirtir.

<!-- The relative address specified: use the base address -->
<!-- provided by the host + path. The endpoint address is -->
<!-- http://localhost:8000/servicemodelsamples/service/test. -->
<endpoint address="/test"
          binding="wsHttpBinding"
          contract="Microsoft.ServiceModel.Samples.ICalculator" />

Göreli adres olan "test", temel adrese eklenir. Gerçek uç nokta adresi şeklindedir http://localhost:8000/servicemodelsamples/service/test.

Üçüncü uç nokta tanımı, aşağıdaki örnek yapılandırmada gösterildiği gibi mutlak bir adres belirtir.

<endpoint address="http://localhost:8001/hello/servicemodelsamples"
          binding="wsHttpBinding"
          contract="Microsoft.ServiceModel.Samples.ICalculator" />

Temel adres, adreste rol oynamaz. Gerçek uç nokta adresi şeklindedir http://localhost:8001/hello/servicemodelsamples.

Dördüncü uç nokta adresi mutlak bir adres ve farklı bir aktarım (TCP) belirtir. Temel adres, adreste rol oynamaz. Gerçek uç nokta adresi şeklindedir net.tcp://localhost:9000/servicemodelsamples/service.

<!-- The absolute address specified, different transport: -->
<!-- use the specified address, and ignore the base address. -->
<!-- The endpoint address is -->
<!-- net.tcp://localhost:9000/servicemodelsamples/service. -->
<endpoint address=
          "net.tcp://localhost:9000/servicemodelsamples/service"
          binding="netTcpBinding"
          contract="Microsoft.ServiceModel.Samples.ICalculator" />

İstemci dört hizmet uç noktasından yalnızca birine erişir, ancak dördü de yapılandırma dosyasında tanımlanır. İstemci, nesneyi oluştururken CalculatorProxy bir uç nokta seçer. ile yapılandırma adını CalculatorEndpoint1CalculatorEndpoint4değiştirerek uç noktaların her birini kullanabilirsiniz.

Örneği çalıştırdığınızda hizmet, uç noktalarının her biri için adres, bağlama adı ve sözleşme adını numaralandırır. Meta veri değişimi (MEX) uç noktası, ServiceHost'un perspektifinden başka bir uç nokta olduğundan listede görünür.

Service endpoints:
Endpoint - address:  http://localhost:8000/ServiceModelSamples/service
           binding:  WSHttpBinding
           contract: ICalculator
Endpoint - address:  http://localhost:8000/ServiceModelSamples/service/test
           binding:  WSHttpBinding
           contract: ICalculator
Endpoint - address:  http://localhost:8001/hello/servicemodelsamples
           binding:  WSHttpBinding
           contract: ICalculator
Endpoint - address:  net.tcp://localhost:9000/servicemodelsamples/service
           binding:  NetTcpBinding
           contract: ICalculator
Endpoint - address:  http://localhost:8000/ServiceModelSamples/service/mex
           binding:  MetadataExchangeHttpBinding
           contract: IMetadataExchange

The service is ready.
Press <ENTER> to terminate service.

İstemciyi çalıştırdığınızda, işlem istekleri ve yanıtları hem hizmet hem de istemci konsol pencerelerinde görüntülenir. Hizmeti ve istemciyi kapatmak için her konsol penceresinde ENTER tuşuna basın.

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.

Örneği ayarlamak, derlemek ve çalıştırmak için

  1. Windows Communication Foundation Örnekleri için Tek Seferlik Kurulum Yordamı'nı gerçekleştirdiğinizden emin olun.

  2. Çözümün C# veya Visual Basic .NET sürümünü oluşturmak için Windows Communication Foundation Örnekleri Oluşturma başlığındaki yönergeleri izleyin.

  3. Örneği tek veya makineler arası bir yapılandırmada çalıştırmak için Windows Communication Foundation Örneklerini Çalıştırma başlığındaki yönergeleri izleyin.

    Not

    Bu örneğin yapılandırmasını yeniden oluşturmak için Svcutil.exe kullanıyorsanız, istemci yapılandırmasındaki uç nokta adını istemci koduyla eşleşecek şekilde değiştirdiğinizden emin olun.