Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die einfachste Möglichkeit, die Net.tcp://-Portfreigabe in Ihrer Windows Communication Foundation (WCF)-Anwendung zu verwenden, besteht darin, mit dem NetTcpBinding einen Dienst bereitzustellen.
Diese Bindung stellt eine PortSharingEnabled Eigenschaft bereit, die steuert, ob die Net.tcp://-Portfreigabe für den Dienst aktiviert ist, der mit dieser Bindung konfiguriert wird.
Das folgende Verfahren zeigt, wie Sie mithilfe der NetTcpBinding Klasse einen Endpunkt am URI (Uniform Resource Identifier) net.tcp://localhost/MyService öffnen, zuerst im Code und dann mithilfe von Konfigurationselementen.
So aktivieren Sie die Net.tcp://-Portfreigabe in einem NetTcpBinding im Code
Erstellen Sie einen Dienst zur Implementierung eines Vertrags namens
IMyServiceund nennen Sie ihnMyService.[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 ClassErstellen Sie eine Instanz der NetTcpBinding Klasse, und legen Sie die PortSharingEnabled Eigenschaft auf
true.NetTcpBinding portsharingBinding = new NetTcpBinding(); portsharingBinding.PortSharingEnabled = true;Dim portsharingBinding As New NetTcpBinding() portsharingBinding.PortSharingEnabled = TrueErstellen Sie ein ServiceHost und fügen Sie den Dienstendpunkt für
MyServicehinzu, der die Portfreigabe verwendet und unter der Endpunktadresse URI "net.tcp://localhost/MyService" überwacht.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")Hinweis
In diesem Beispiel wird der standardmäßige TCP-Port von 808 verwendet, da der Endpunktadressen-URI keine andere Portnummer angibt. Da die Portfreigabe für die Transportbindung explizit aktiviert ist, kann dieser Dienst Port 808 für andere Dienste in anderen Prozessen freigeben. Wenn die Portfreigabe nicht zulässig war und eine andere Anwendung bereits Port 808 verwendet hat, würde dieser Dienst beim Öffnen einen AddressAlreadyInUseException Fehler auslösen.
So aktivieren Sie die Net.tcp://-Portfreigabe für ein NetTcpBinding in der Konfiguration
- Das folgende Beispiel zeigt, wie Sie die Portfreigabe aktivieren und den Dienstendpunkt mithilfe von Konfigurationselementen hinzufügen.
<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>