Ho un semplice servizio WCF che sto comunicando con Asincrono.Collegamenti WCF che superano le connessioni massime quando si utilizza il modello asincrono
La cosa che non mi piace è quando si chiama il EndServiceMethod(IASyncResult)
se mi dimentico di chiamare il metodo Close()
, il servizio sarà effettivamente lasciare la connessione aperta e quindi tutte le connessioni rimanenti fallirà dopo la WCF raggiunge il suo massimo le connessioni contemporanee contano con le eccezioni di timeout.
Ho provato a utilizzare l'attributo al contratto di servizio, che non sembra avere alcun effetto sullo stato della connessione dal servizio.
Forse l'ho implementato in modo errato?
Qualsiasi idea o suggerimento.
Sto cercando di individuare un modello di comportamento per WCF che consenta ai client di effettuare una richiesta, quindi al server di rispondere alla richiesta e quindi di presumere che la connessione sia finita e possa essere interrotta.
sono stato chiudendola nel gestore di callback e che sembra funzionare. Immagino che stavo solo sperando in una soluzione più elegante che permetta questo lavoro sul lato server. – Beta033
Questa è in realtà la soluzione migliore. A seconda del tuo codice potresti essere in grado di contare il numero di gestori di callback e il numero di volte che hai chiamato chiudi e vedere se corrispondono. –
Tranne che avrò molti client ciascuno con possibilmente con più connessioni. come fanno i servizi pubblici di wcf? Non posso immaginare che si aspettino che i loro clienti siano sempre bravi a chiudere le connessioni quando hanno finito. – Beta033