【发布时间】:2009-10-20 15:54:56
【问题描述】:
我正在使用 VSTS 2008 + C# + .Net 3.5 开发控制台应用程序,并将请求发送到另一台服务器(Windows Server 2008 上的 IIS 7.0)。这是我的代码。我的问题是,就像在我的代码中一样,我使用 while 循环从服务器逐块读取块。超时请求。Timeout = Timeout * 1000 负责 (1) 与服务器打开连接的超时时间,或 (2) 每次读取操作的超时时间,或 (3) 用于 while 循环的总时间?
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)
{
globalCounter++;
}
}
catch (Exception ex)
{
lock (counterLock)
{
globalFailCounter++;
Console.WriteLine("Fail Counter: " + globalFailCounter + "\n" + ex.Message + "\n" + ex.StackTrace);
}
}
finally
{
if (null != reader)
{
reader.Close();
}
if (null != dataStream)
{
dataStream.Close();
}
if (null != response)
{
response.Close();
}
}
}
【问题讨论】:
-
谢谢,以后我会处理的。 :-)
标签: c# .net visual-studio-2008 iis-7 httpwebrequest