Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
NetHttpBinding HTTP- vagy WebSocket-szolgáltatások használatához készült kötés, és alapértelmezés szerint bináris kódolást használ. NetHttpBinding észleli, hogy kérés-válasz szerződéssel vagy kétoldalas szerződéssel használják-e, és módosítja a viselkedését a megfelelőre – HTTP-t fog használni a kérés-válasz szerződésekhez és WebSocketeket a kétoldalas szerződésekhez. Ez a viselkedés felülbíráltatható a WebSocketTransportUsage következő beállítással:
Always - Ez arra kényszeríti a WebSocketeket, hogy még a kérelem-válasz szerződésekhez is használhatók legyenek.
Never – Ez megakadályozza a WebSockets használatát. Ha ezzel a beállítással duplex szerződést próbál használni, kivételhez vezet.
WhenDuplex - Ez az alapértelmezett érték, és a fent leírt módon viselkedik.
NetHttpBinding támogatja a megbízható munkameneteket HTTP módban és WebSocket módban is. A WebSocket módban a munkameneteket az átvitel biztosítja.
Figyelmeztetés
Amikor a NetHttpBinding és a kötés TransferMode-ja TransferMode.Streamed értékre van állítva, a nagy streamek holtpontot okozhatnak, és a hívás időtúllépéshez vezethet. A probléma megoldásához küldjön kisebb üzeneteket, vagy használja a TransferMode.Buffered parancsot.
Szolgáltatás konfigurálása a NetHttpBinding használatára
Ez NetHttpBinding ugyanúgy konfigurálható, mint bármely más kötés. Az alábbi konfigurációs kódrészlet bemutatja, hogyan konfigurálhat WCF-szolgáltatást.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>
Az alábbi kódrészlet bemutatja, hogyan lehet a NetHttpBinding elemet hozzáadni a kódban.
ServiceHost svchost = new ServiceHost(typeof(Service1), baseAddress);
NetHttpBinding binding = new NetHttpBinding();
svchost.AddServiceEndpoint(typeof(IService1), binding, address);
}