Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
NetHttpBinding är en bindning utformad för användning av HTTP- eller WebSocket-tjänster och använder binär kodning som standard. NetHttpBinding identifierar om det används med ett begärande-svar-kontrakt eller duplex-kontrakt och ändrar dess beteende så att det matchar – det använder HTTP för begärandesvarskontrakt och WebSockets för duplex-kontrakt. Det här beteendet kan åsidosättas med hjälp av inställningen WebSocketTransportUsage :
Always - Detta tvingar WebSockets att användas även för begäran-svar-kontrakt.
Never – Detta förhindrar att WebSockets används. Om du försöker använda ett duplex-kontrakt med den här inställningen resulterar det i ett undantag.
WhenDuplex – Det här är standardvärdet och fungerar enligt beskrivningen ovan.
NetHttpBinding stöder tillförlitliga sessioner i både HTTP-läge och WebSocket-läge. I WebSocket-läge tillhandahålls sessioner av transporten.
Varning
När du använder NetHttpBinding och bindningens TransferMode är inställt på TransferMode.Streamed kan stora strömmar orsaka ett dödläge och anropet överskrider tidsgränsen. Du kan undvika det här problemet genom att skicka mindre meddelanden eller använda TransferMode.Buffered.
Konfigurera en tjänst för att använda NetHttpBinding
NetHttpBinding Kan konfigureras på samma sätt som andra bindningar. Följande konfigurationsfragment visar hur du konfigurerar en WCF-tjänst med 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>
Följande kodfragment visar hur du lägger NetHttpBinding till i koden.
ServiceHost svchost = new ServiceHost(typeof(Service1), baseAddress);
NetHttpBinding binding = new NetHttpBinding();
svchost.AddServiceEndpoint(typeof(IService1), binding, address);
}