J'utilise VSTS 2008 + C# + .Net 3.5 pour développer une application console et j'envoie une requête à un autre serveur (IIS 7.0 sur Windows Server 2008). Je trouve quand le nombre de threads de demande est grand, le IIS 7.0 répondra avec l'erreur http 503. Des idées ce qui ne va pas et comment régler pour rendre IIS 7.0 servir plus de demandes?envoyer une erreur de requête HTTP (Http 503) en C#
Voici mon code,
class Program
{
private static int ClientCount = 100;
private static string TargetURL = "http://labtest/abc.wmv";
private static int Timeout = 200;
static void PerformanceWorker()
{
Stream dataStream = null;
HttpWebRequest request = null;
HttpWebResponse response = null;
StreamReader reader = null;
try
{
request = (HttpWebRequest)WebRequest.Create(TargetURL);
request.Timeout = Timeout * 1000;
request.Proxy = null;
response = (HttpWebResponse)request.GetResponse();
dataStream = response.GetResponseStream();
reader = new StreamReader(dataStream);
// 1 M at one time
char[] c = new char[1000 * 10];
while (reader.Read(c, 0, c.Length) > 0)
{
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message + "\n" + ex.StackTrace);
}
finally
{
if (null != reader)
{
reader.Close();
}
if (null != dataStream)
{
dataStream.Close();
}
if (null != response)
{
response.Close();
}
}
}
static void Main(string[] args)
{
Thread[] workers = new Thread[ClientCount];
for (int i = 0; i < ClientCount; i++)
{
workers[i] = new Thread((new ThreadStart(PerformanceWorker)));
}
for (int i = 0; i < ClientCount; i++)
{
workers[i].Start();
}
for (int i = 0; i < ClientCount; i++)
{
workers[i].Join();
}
return;
}
}
Effectuez-vous réellement 100 demandes simultanées? – RobV
Oui, bien sûr. Pourquoi avez-vous une telle suspicion? :-) – George2