“Unable to connect to remote server fail” in HttpWebRequest

前端 未结 4 793
-上瘾入骨i
-上瘾入骨i 2021-01-07 09:47

I am using VSTS 2008 + C# + .Net 3.5 to develop a console application and I send request to another server (IIS 7.0 on Windows Server 2008). I find when the # of request thr

4条回答
  •  无人及你
    2021-01-07 10:41

    Go to Smart Thread Pool and downlod the code. It is an instance thread pool that constrains the number of threads. The .Net Thread pool can be problematic in applications that connect to web servers and SQL servers.

    Change the loop to this

    static void Main(string[] args)
            {
                var stp = new SmartThreadPool((int) TimeSpan.FromMinutes(5).TotalMilliseconds,
                                              Environment.ProcessorCount - 1, Environment.ProcessorCount - 1);
                stp.Start();
                for (var i = 0; i < ClientCount; i++)
                {
                    stp.QueueWorkItem(PerformanceWorker);
                }
                stp.WaitForIdle();
                stp.Shutdown();
    
                return;
            }
    

    This constrains the thread pool to use 1 thread per proc. Adjust this up until performance starts to degrade. Too many threads are worse than too few. you many find that this is optimal.

    Also add this to you config. The value of 100 is a default I use. There is a way to do this in code but the syntax escapes me now.

    
    
        
    
            
    
        
    
    
    

提交回复
热议问题