在向IIS发送其他请求之前,我需要等待多长时间

时间:2011-11-10 20:17:26

标签: iis

我有一个专门用于调用服务请求响应的控制台应用程序。这更多是用于实验,但是,我们希望比较各种做事方式的响应时间。

该应用可以发出两个请求,但后续请求会超时。响应是<一般为100毫秒。我怀疑这些请求被解雇得太快而IIS被限制,因为它认为它是DOS攻击(猜测)。停止控制台应用程序并重新启动足以允许额外的两个请求。

服务器是另一台机器(不在我的机器上运行),但在我们的防火墙内。

基本上,下面的代码在FOR循环中运行:

        long start = DateTime.Now.Ticks;

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL1);

        HttpWebResponse response = (HttpWebResponse)request.GetResponse();

        long end = DateTime.Now.Ticks;

        long duration = end - start;

        Console.WriteLine("duration: " + duration);

如果这是IIS内置的一些保护,我如何制作一堆请求并对响应时间进行准确分析?或者,我如何在IIS中暂时禁用它(但可能不建议这样做?)

1 个答案:

答案 0 :(得分:0)

我很好奇,所以我把你的代码带到Visual Studio中,果然 - 你是对的。当我在本地连接到IIS Express时(在另一个Visual Studio实例中),它工作正常,但是当我尝试连接到运行IIS 7.5的真实远程服务器时,它没有工作。

然而,似乎没有问题的是,我可以执行控制台应用程序,看到它在2个请求后超时,快速关闭它并重新运行它,它会给我另外2个请求。这让我觉得这不是服务器问题,而是.NET中的问题。如果它实际上是一种DOS预防技术,你认为它会在一段固定的时间内超时。

所以我尝试使用我过去使用过的第三方HTTP组件,特别是Chilkat,在这种情况下,它按预期工作。我能够向远程服务器发送重复的请求。我无法确切地说出造成问题的原因,但修复程序可能就像不使用内置的HttpWebRequest对象一样容易。