Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
NetHttpBinding is een binding die is ontworpen voor het gebruik van HTTP- of WebSocket-services en maakt standaard gebruik van binaire codering. NetHttpBinding detecteert of het wordt gebruikt met een aanvraag-antwoordcontract of dubbelzijdig contract en wijzigt het gedrag ervan zodat deze overeenkomt. Het gebruikt HTTP voor aanvraag-antwoordcontracten en WebSockets voor dubbelzijdige contracten. Dit gedrag kan worden overschreven met behulp van de WebSocketTransportUsage instelling:
Always - Dit dwingt WebSockets te gebruiken, zelfs voor aanvraag-antwoordcontracten.
Never - Hiermee voorkomt u dat WebSockets worden gebruikt. Als u een dubbelzijdig contract met deze instelling probeert te gebruiken, leidt dit tot een foutmelding.
WhenDuplex - Dit is de standaardwaarde en gedraagt zich zoals hierboven beschreven.
NetHttpBinding ondersteunt betrouwbare sessies in zowel de HTTP-modus als de WebSocket-modus. In WebSocket-modus-sessies worden aangeboden door het transport.
Waarschuwing
Wanneer de TransferMode van de NetHttpBinding-binding is ingesteld op TransferMode.Streamed en wordt gebruikt, kunnen grote streams een impasse veroorzaken en zal de aanroep een time-out krijgen. U kunt dit probleem omzeilen door kleinere berichten te verzenden of TransferMode.Buffered te gebruiken.
Een service configureren voor het gebruik van NetHttpBinding
De NetHttpBinding kan op dezelfde manier worden geconfigureerd als elke andere binding. In het volgende configuratiefragment ziet u hoe u een WCF-service configureert met NetHttpBinding.
<system.serviceModel>
<services>
<service name="WcfService1.Service1">
<endpoint address=""
binding="netHttpBinding"
contract="WcfService1.IService1"/>
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange"/>
</service>
</services>
<bindings>
<netHttpBinding>
<binding name="My_NetHttpBindingConfig">
<webSocketSettings transportUsage="WhenDuplex"/>
</binding>
</netHttpBinding>
</bindings>
...
</system.serviceModel>
Het volgende codefragment toont hoe u de NetHttpBinding in de code toevoegt.
ServiceHost svchost = new ServiceHost(typeof(Service1), baseAddress);
NetHttpBinding binding = new NetHttpBinding();
svchost.AddServiceEndpoint(typeof(IService1), binding, address);
}