Я использую следующий код, чтобы попытаться проверить, будет ли потребление сети (отслеживается с вкладки сети диспетчера задач) увеличиваться, если я увеличиваю число одновременных подключений (то есть значение конфигурации приложения ClientCount). Но я нахожу, даже если я увеличиваю количество клиентов с 100 до 500, потребление сети остается тем же (около 3% -4%, как с клиентской, так и с серверной стороны). Какие-нибудь идеи, что не так? Я хочу доказать, увеличивается ли одновременное число с клиентской стороны, и потребление сети клиента и сервера будет расти.Возможности подключения к сети не используются в полной мере, почему?
Вот мой конфигурационный код приложения и клиентский код. URL-адрес представляет собой файл wmv, размещенный в режиме управления скоростью передачи данных IIS 7.0 на другом компьютере в локальной локальной сети. Я использую VSTS 2008 + C# + .Net 3.5 для разработки консольного приложения в качестве клиента.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.net>
<connectionManagement>
<add address="*" maxconnection="1000000" />
</connectionManagement>
</system.net>
<appSettings>
<add key="URL" value="http://labtest2/test.wmv"/>
<add key="ClientCount" value="100"/>
<add key="Timeout" value="3600"/>
</appSettings>
</configuration>
class Program
{
private static int ClientCount = 100;
private static string TargetURL = String.Empty;
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 * 1000];
while (reader.Read(c, 0, c.Length) > 0)
{
Console.WriteLine(Thread.CurrentThread.ManagedThreadId + ":\t" + c[0]);
}
}
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)
{
TargetURL = ConfigurationSettings.AppSettings["URL"];
ClientCount = Int32.Parse(ConfigurationSettings.AppSettings["ClientCount"]);
Timeout = Int32.Parse(ConfigurationSettings.AppSettings["Timeout"]);
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;
}
}
Где вы имеете в виду ограничения на стороне сервера для проверки? web.config или в диспетчере IIS? – George2
Я пробовал на IIS 7 для Windows Server 2008, он отлично работает. Но на IIS 7 для Windows 7 возникают проблемы, почему? – George2