2009-09-24 12 views
8

Sto scrivendo un'applicazione Web ASP.NET che verrà eseguita su Windows Server 2008 (IIS7).Quante chiamate simultanee HttpWebRequest in uscita possono essere effettuate in ASP.NET/IIS7?

Codebehind di ogni pagina dovrà effettuare almeno una chiamata di servizio Web sincrono a un server esterno utilizzando HttpWebRequest e GET.

La mia domanda: c'è un limite al numero di chiamate HttpWebRequest in uscita che posso fare? (supponiamo che il server che sto chiamando non ha limiti)

Esiste un modo per raggruppare queste connessioni per rendere migliore l'app? Una configurazione web garden sarebbe d'aiuto?

risposta

5

Per default, un HTTP/server 1.1 è limitato a due connessione e un/server HTTP 1.0 è limitato a quattro connessioni. Pertanto, l'applicazione ASP.NEt presenterà gravi problemi di throughput se si sta tentando di inviare più di due richieste in sospeso a un server HTTP/1.1, ad es.

Sarà necessario aumentare il limite di connessione, per server o globalmente.

Per esempio, a livello globale:

ServicePointManager.DefaultConnectionLimit = 10; // allow 10 outstanding connections 

Spero che questo aiuti.

+0

Questo è stato davvero utile. Ho pensato di aggiungere che per impostare questo tramite web.config, è possibile aggiungere indirizzi a system.net/connectionManagement. – Jacob

1

Penso che la tua domanda dovrebbe essere orientata verso le configurazioni di rete.

Direi che stai chiedendo problemi se ogni pagina dipende da una chiamata esterna sincrona. Cosa succede se si ottiene il numero N di richiesta che si blocca sui servizi Web esterni? Avrai alcuni problemi allora e non puoi fare nulla al riguardo.

Avete considerato le chiamate asincrone con i callback?

EDIT: Asynchronous Pages in ASP.NET 2.0

+0

Saranno chiamate asincrone funzionano quando chiamato da codebehind di una pagina ASPX? – frankadelic

+0

Questa è una domanda caricata, ma ho aggiunto un collegamento che ha un esempio che dovrebbe farti andare. –

Problemi correlati