Aracılığıyla paylaş


Nasıl yapılır: Bağlantı Noktası Paylaşımı Kullanarak Bir Windows Communication Foundation Hizmetini Yapılandırma

Windows Communication Foundation (WCF) uygulamanızda net.tcp:// bağlantı noktası paylaşımını kullanmanın en kolay yolu, kullanarak NetTcpBindingbir hizmeti kullanıma açmaktır.

Bu bağlama, bu bağlamayla yapılandırılan hizmet için net.tcp:// bağlantı noktası paylaşımının etkinleştirilip etkinleştirilmediğini denetleyebilen bir PortSharingEnabled özellik sağlar.

Aşağıdaki yordamda, önce kodda NetTcpBinding ve ardından yapılandırma öğelerini kullanarak net.tcp://localhost/MyService Tekdüzen Kaynak Tanımlayıcısı'nda (URI) bir uç nokta açmak için sınıfının nasıl kullanılacağı gösterilmektedir.

Kodda netTcpBinding üzerinde net.tcp:// bağlantı noktası paylaşımını etkinleştirmek için

  1. adlı IMyService bir sözleşme uygulamak için bir hizmet oluşturun ve bunu olarak adlandırabilirsiniz MyService.

    [ServiceContract]
    interface IMyService
    {
    
       //Define the contract operations.
    }
    
    class MyService : IMyService
    {
    
    //Implement the IMyService operations.
    }
    
    <ServiceContract()> _
    Friend Interface IMyService
    
        'Define the contract operations.
    
    End Interface
    
    Friend Class MyService
        Implements IMyService
    
        'Implement the IMyService operations.
    
    End Class
    
  2. sınıfının bir örneğini NetTcpBinding oluşturun ve özelliğini olarak trueayarlayınPortSharingEnabled.

    NetTcpBinding portsharingBinding = new NetTcpBinding();
    portsharingBinding.PortSharingEnabled = true;
    
    Dim portsharingBinding As New NetTcpBinding()
    portsharingBinding.PortSharingEnabled = True
    
  3. ServiceHost"net.tcp://localhost/MyService" uç nokta MyService adresi URI'sini dinleyen ve sharing özellikli NetTcpBinding bağlantı noktasını kullanan hizmet uç noktasını oluşturun ve buna ekleyin.

    ServiceHost host = new ServiceHost( typeof( MyService ) );
    host.AddServiceEndpoint( typeof( IMyService ), portsharingBinding,"net.tcp://localhost/MyService" );
    
    
    Dim host As New ServiceHost(GetType(MyService))
    host.AddServiceEndpoint(GetType(IMyService), portsharingBinding, "net.tcp://localhost/MyService")
    

    Not

    Uç nokta adresi URI'sinin farklı bir bağlantı noktası numarası belirtmemesi nedeniyle bu örnekte varsayılan TCP bağlantı noktası 808 kullanılır. Taşıma bağlamasında bağlantı noktası paylaşımı açıkça etkinleştirildiğinden, bu hizmet 808 numaralı bağlantı noktasını diğer işlemlerdeki diğer hizmetlerle paylaşabilir. Bağlantı noktası paylaşımına izin verilmiyorsa ve başka bir uygulama zaten 808 numaralı bağlantı noktasını kullanıyorsa, bu hizmet açıldığında bir AddressAlreadyInUseException oluştururdu.

Yapılandırmada netTcpBinding üzerinde net.tcp:// bağlantı noktası paylaşımını etkinleştirmek için

  1. Aşağıdaki örnekte, yapılandırma öğelerini kullanarak bağlantı noktası paylaşımının nasıl etkinleştirileceği ve hizmet uç noktasının nasıl ekleneceği gösterilmektedir.
<system.serviceModel>  
  <bindings>  
    <netTcpBinding name="portSharingBinding"
                   portSharingEnabled="true" />  
  </bindings>  
  <services>  
    <service name="MyService">  
        <endpoint address="net.tcp://localhost/MyService"  
                  binding="netTcpBinding"  
                  contract="IMyService"  
                  bindingConfiguration="portSharingBinding" />  
    </service>  
  </services>  
</system.serviceModel>  

Ayrıca bkz.