2011-01-16 13 views
6

Ho riscontrato un comportamento molto interessante della sessione affidabile. Sto usando netTcp binding + duplex channel + sessione affidabile.WCF La sessione affidabile senza sicurezza di trasporto non ha provocato l'evento in orario

Quando si tenta di ascoltare su channel.faulted, se è impostata la modalità di sicurezza per il trasporto, l'evento con errore si attiva immediatamente quando il client si disconnette.

Tuttavia, quando imposto la modalità di sicurezza del binding su Nessuno o Messaggio, l'evento guasto non viene più attivato nella stessa situazione. Alla fine si verificherà la metà di ReciveTimeout sul lato server che capisco come sessione affidabile invierebbe un messaggio heart beat in quel momento.

La domanda è: perché il binding wcf non viene risolto in tempo?

Per risolvere questo problema, è possibile eseguire manualmente il "ping" delle connessioni.

+0

Qual è esattamente la domanda? Stai chiedendo perché è così? ... o cosa puoi fare al riguardo, semmai? –

+0

Sì, mi spiace essere poco chiaro. Volevo sapere perché è così e ho postato una soluzione per questo. – Yuan

risposta

0

Il binding NetTcp per impostazione predefinita utilizza Transport security con Windows credentials. Tutti i binding tranne BasicHttp e WebHttp sono protetti per impostazione predefinita.

+0

Sì, è corretto. Questo è il motivo per cui ho dovuto impostare in modo esplicito securitymode su None e la sessione affidabile non genera più errori in tempo. – Yuan

Problemi correlati