2010-05-31 7 views
8

C'è qualcosa nella configurazione WCF che definisce un timeout per l'esecuzione di una richiesta dal lato del servizio? Per esempio. Il servizio WCF interromperà l'esecuzione della richiesta dopo un certo periodo di tempo. Ho un servizio che funziona a seconda dell'input del client. In alcuni casi, una chiamata di questo tipo potrebbe richiedere troppo tempo. Voglio limitare il tempo di esecuzione di tali richieste dal lato del servizio, non quello del cliente utilizzando SendTimeout. Conosco la proprietà OperationTimeout, ma non interrompe la richiesta di servizio, ma comunica al client che la richiesta è scaduta.Come limitare un tempo di esecuzione della richiesta del servizio WCF?

risposta

16

In termini generali, non c'è nulla che possa far rispettare completamente questo. Sfortunatamente, è una di quelle cose che il runtime non è in grado di imporre in modo piacevole senza lasciare incasinato lo stato (praticamente l'unica alternativa sarebbe quella di interrompere il thread in esecuzione, e questo ha un sacco di conseguenze indesiderabili).

Quindi, in pratica, se questo è qualcosa che si desidera applicare attivamente, è molto meglio progettare il proprio servizio per gestire questo in modo che l'esecuzione dell'operazione abbia punti di interruzione sicuri in cui l'operazione può essere interrotta se il tempo massimo di esecuzione è stato superato

Anche se è molto più lavoro, a lungo termine sarai probabilmente più soddisfatto.

+0

Sembra che non ci sia altra soluzione per ora. Grazie – Kamarey

+1

+1 Grazie per quello. Questa informazione non è disponibile in molti posti. La MS sembra ignorare l'intera meccanica del timeout del wcf. –

Problemi correlati