Vorgehensweise: Konfigurieren eines Windows Communication Foundation-Dienstes zum Durchführen der Anschlussfreigabe
Der einfachste Weg, um die net.tcp://-Anschlussfreigabe in Ihrer Windows Communication Foundation (WCF)-Anwendung zu verwenden, besteht darin, einen Dienst mit der NetTcpBinding verfügbar zu machen.
Diese Bindung verfügt über eine PortSharingEnabled-Eigenschaft, die festlegt, ob die net.tcp://-Anschlussfreigabe für den mit dieser Bindung zu konfigurierenden Dienst aktiviert ist.
Der folgende Vorgang zeigt, wie Sie die NetTcpBinding-Klasse zum Öffnen eines Endpunkts am Uniform Resource Identifier (URI) net.tcp://localhost/MyService verwenden können, zuerst im Code und dann mithilfe von Konfigurationselementen.
So aktivieren Sie die net.tcp://-Anschlussfreigabe für eine NetTcpBinding im Code
Erstellen Sie einen Dienst, um einen Vertrag mit dem Namen IMyService zu implementieren und ihn in MyService umzubenennen.
<ServiceContract()> _ Friend Interface IMyService 'Define the contract operations. End Interface Friend Class MyService Implements IMyService 'Implement the IMyService operations. End Class
[ServiceContract] interface IMyService { //Define the contract operations. } class MyService : IMyService { //Implement the IMyService operations. }
Erstellen Sie eine Instanz der NetTcpBinding-Klasse, und setzen Sie die PortSharingEnabled-Eigenschaft auf true fest.
Dim portsharingBinding As New NetTcpBinding() portsharingBinding.PortSharingEnabled = True
NetTcpBinding portsharingBinding = new NetTcpBinding(); portsharingBinding.PortSharingEnabled = true;
Erstellen Sie einen ServiceHost, und fügen Sie ihm den Dienstendpunkt für MyService hinzu, der die NetTcpBinding, für die die Anschlussfreigabe aktiviert wurde, verwendet und der am Endpunkt-Adress-URI "net.tcp://localhost/MyService" eine Abhörung durchführt.
Dim host As New ServiceHost(GetType(MyService)) host.AddServiceEndpoint(GetType(IMyService), portsharingBinding, "net.tcp://localhost/MyService")
ServiceHost host = new ServiceHost( typeof( MyService ) ); host.AddServiceEndpoint( typeof( IMyService ), portsharingBinding,"net.tcp://localhost/MyService" );
Hinweis: In diesem Beispiel wird der Standard-TCP-Anschluss 808 verwendet, da der Endpunkt-Adress-URI keine andere Anschlussnummer angibt. Da die Anschlussfreigabe explizit für die Transportbindung aktiviert wurde, kann dieser Dienst den Anschluss 808 für andere Dienste in anderen Vorgängen freigeben. Wenn die Anschlussfreigabe nicht zulässig wäre und eine andere Anwendung bereits den Anschluss 808 verwenden würde, würde dieser Dienst beim Öffnen eine AddressAlreadyInUseException ausgeben.
So aktivieren Sie die net.tcp://-Anschlussfreigabe für eine NetTcpBinding in der Konfiguration
- Das folgende Beispiel zeigt, wie Sie die Anschlussfreigabe aktivieren und den Dienstendpunkt mithilfe von Konfigurationselementen hinzufügen können.
<system.serviceModel>
<bindings>
<netTcpBinding name="portSharingBinding"
portSharingEnabled="true" />
<services>
<service name="MyService">
<endpoint address="net.tcp://localhost/MyService"
binding="netTcpBinding"
contract="IMyService"
bindingConfiguration="portSharingBinding" />
</service>
</services>
</system.serviceModel>
Siehe auch
Aufgaben
Vorgehensweise: Aktivieren des Net.TCP-Portfreigabediensts