minBytesPerSecond webLimit setting not taking effect [Answered]RSS

22 replies

Last post Feb 01, 2018 01:14 AM by kohepu

  • minBytesPerSecond webLimit setting not taking effect

    Apr 18, 2017 10:58 PM|uncled1023|LINK

    I have set the minBytesPerSecond webLimit configuration setting to '0' in the applicationHost.config, as well as ran the following command:

    appcmd.exe set config -section:system.applicationHost/webLimits /minBytesPerSecond:"0" /commit:apphost

    I have restarted the server but I am still seeing errors in my HTTPERR log that show that this timeout is still occuring.  

        2017-04-26 04:32:17 <sender_ip> 52505 <server_ip> 443 - - - - - - Timer_MinBytesPerSecond -

    I have also confirmed using WireShark that if I try loading one of the files from my website over and over, it will eventually hit this timeout and a RST packet will be sent from the server.

    I am running a few ASP.NET 4.6.2 sites on IIS 10, running on Windows Server 2016 DC.  

    I have configured the *minBytesPerSecond* option in the applicationHost.config file located at "C:\Windows\System32\inetsrv\config\".

    Here is what my applicationConfig looks like:

            <configSections>
                <sectionGroup name="system.applicationHost">
                    ...
                    <section name="webLimits" allowDefinition="Everywhere" overrideModeDefault="Allow" />
                </sectionGroup>
                ...
            </configSections>

            ...

            <location path="" overrideMode="Allow">

                ...
                
                <system.applicationHost>
                  <webLimits minBytesPerSecond="0" />
                </system.applicationHost>
            </location>
        </configuration>

    I then checked through the IIS Manager the configuration loaded for each site, and it shows the value of 0 for minBytesPerSecond.

    I have tried putting the setting in the global <system.applicationHost> as well, with no luck.  I have both restarted the IIS Admin service, and restarted the server after each change.

    Any thoughts?

  • Re: minBytesPerSecond webLimit setting not taking effect

    Apr 19, 2017 07:46 AM|Yuk Ding|LINK

    Hiuncled1023,

    The error Timer_MinBytesPerSecond show that The connection expired because the client was not receiving a response at a reasonable speed.

    Please try to set system.applicationHost/webLimits/connectiontimeout and system.web/httpRuntime/execution Timeout.

    Of course, you could try to set minBytesPerSecond to 1 instead of 240.

    https://blogs.msdn.microsoft.com/benjaminperkins/2013/02/01/its-not-iis/

    Best Regards,

    Yuk Ding

    Yuk Ding

    MSDN Community Support
    Please remember to "Mark as Answer" the responses that resolved your issue.
  • Re: minBytesPerSecond webLimit setting not taking effect

    Apr 19, 2017 07:49 AM|uncled1023|LINK

    Hello Yuk,

    As I described earlier, I have set the minBytesPerSecond to 0, and I have also tried 1.  It is showing the setting in the applicationHost file, but it is still throwing these errors.

  • Re: minBytesPerSecond webLimit setting not taking effect

    Apr 22, 2017 09:58 PM|uncled1023|LINK

    Anyone else have any suggestions?

  • Re: minBytesPerSecond webLimit setting not taking effect

    Apr 25, 2017 09:21 AM|Yuk Ding|LINK

    Hi uncled1023,

    Are you using the web application in IIS  or debugging via visual studio? Visual studio 2015 has its own applicationhost.config, if you were debugging the web application. Please configure The application to point to local IIS in visual studio:

    https://msdn.microsoft.com/en-us/library/ms178108.aspx

    Best Regards,

    Yuk Ding

    Yuk Ding

    MSDN Community Support
    Please remember to "Mark as Answer" the responses that resolved your issue.
  • Re: minBytesPerSecond webLimit setting not taking effect

    Apr 26, 2017 04:46 AM|uncled1023|LINK

    I am using IIS.  Not debugging.  The specific version is IIS 10 on Windows Server 2016 Datacenter

  • Re: minBytesPerSecond webLimit setting not taking effect

    Apr 26, 2017 05:08 AM|mahamr|LINK

    And you're sure the httperr log entries with the error correlate to sites hosted on IIS? Can you post one of the log entries?

  • Re: minBytesPerSecond webLimit setting not taking effect

    Apr 26, 2017 05:12 AM|uncled1023|LINK

    Here is one of the lines HTTPERR is showing (IPs Removed):


    2017-04-26 04:32:17 <sender_ip> 52505 <server_ip> 443 - - - - - - Timer_MinBytesPerSecond -

    I have confirmed on my end that when I am loading a file from my site and it get's the connection killed halfway through, there is a corresponding log entry with my IP as the sender.

  • Re: minBytesPerSecond webLimit setting not taking effect

    May 03, 2017 07:32 AM|Yuk Ding|LINK

    Hi uncled1023,

    The web application under IIS site got its own root web.config under the root path of your web application, so please check whether the configuration editor has pointed the right place. the application level could override the site level.

    Besides, please restart the IIS admin service to make the change to MinFileBytesPerSec and ConnectionTimeout work.

    Best Regards,

    Yuk Ding

    Yuk Ding

    MSDN Community Support
    Please remember to "Mark as Answer" the responses that resolved your issue.
  • Re: minBytesPerSecond webLimit setting not taking effect

    May 16, 2017 11:36 PM|uncled1023|LINK

    The web.config under the root path of the application cannot have any settings related to applicationHost, as the scheme does not allow it.

    I have restarted both the admin service, as well as the webserver after making changes, to no effect.

  • Re: minBytesPerSecond webLimit setting not taking effect

    Jun 06, 2017 04:34 AM|uncled1023|LINK

    Any other thoughts?  This is still not solved, and is becoming a real issue.  About 5% of all requests are being canceled due to this.

  • Re: minBytesPerSecond webLimit setting not taking effect

    Jun 06, 2017 09:05 AM|Yuk Ding|LINK

    Hi uncled1023,

    The error message is pointing to the parameter in system.applicationHost/webLimits In configuration editor. So the most important operation is set the connection timeout and minbytesPersecond has been truly configured.

    Now that it is not working,  I assume there is something wrong with you concurrent connection configuration. Does the client get 503 when httperr return Timer_MinBytesPerSecond? You could try to set the the application pool queue length. If the concurrent connection number is larger than the queue  length. The IIS will abort the request.

    Try to set the application pool->advanced setting->queue lenth to a larger value.

    Best Regards,

    Yuk Ding

    Yuk Ding

    MSDN Community Support
    Please remember to "Mark as Answer" the responses that resolved your issue.
  • Re: minBytesPerSecond webLimit setting not taking effect

    Jun 08, 2017 02:30 AM|uncled1023|LINK

    Hello,

    Thanks for your reply.  I have checked the Queue Length, and it is currently set to '65535'.  Still getting the MinBytesPerSecond httperr.

  • Re: minBytesPerSecond webLimit setting not taking effect

    Sep 09, 2017 11:14 PM|uncled1023|LINK

    Anyone have any more ideas?  This is really creating issues with the site, as a lot of people can't view images correctly, or download large files.

  • Re: minBytesPerSecond webLimit setting not taking effect

    Sep 10, 2017 12:45 AM|uncled1023|LINK

    Another update.  I did some messing with config settings, and set the minBytesPerSecond config very high (about 1 MB), and noticed something interesting.  The Timer_MinBytesPerSecond were now mentioning the actual file name that was throwing the error.  This is making me think that the IIS minBytesPerSecond is actually working correctly, but the Timer_MinBytesPerSecond is being thrown from something else, as they are not specifying any specific page when I have the minBytesPerSecond config setting set to 0.

  • Re: minBytesPerSecond webLimit setting not taking effect

    Sep 27, 2017 06:36 AM|dmpriso|LINK

    I've run into a problem which is directly linked to yours I think.

    We have written our own HTTP server in C# which, among other tasks, hosts files for download. We are using Microsoft HTTP Api (HttpListener), which is the same component IIS also uses.

    As we have moved a few servers from Server 2012 to 2016, our customers started complaining about broken downloads. Over several weeks we couldn't reproduce the problem. 

    The HTTP API log shows the following:

    #Software: Microsoft HTTP API 2.0

    #Version: 1.0
    #Date: 2017-09-26 13:17:48
    #Fields: date time c-ip c-port s-ip s-port cs-version cs-method cs-uri streamid sc-status s-siteid s-reason s-queuename
    2017-09-26 13:17:48 <ip> 49224 10.0.10.101 443 - - - - - - Timer_MinBytesPerSecond -
    2017-09-26 13:20:41 <ip> 49234 10.0.10.101 443 - - - - - - Timer_MinBytesPerSecond -
    2017-09-27 06:22:58 <ip> 34090 10.0.10.101 443 - - - - - - Timer_MinBytesPerSecond -

    We have Microsoft Message Analyzer Traces which clearly show that the download speed is not below the default 240 or 150 bytes per second. At some point during the download, HTTP.SYS sends a RST packet to the client.

    Today I found a way to reproduce the problem at our site: Just generate some random network latency. I use SoftPerfect Connection Emulator for this, and set the latency to random 100-500ms. Download speed is still OK with that (we are downloading about 3MB files in about 12 seconds then), but nearly every download fails.

    We haven't yet found a solution for that problem. Setting the MinDownloadSpeed property via HttpListener API did have no effect. However, the problem clearly doesn't occur with Server 2012 so we are considering to simply redirect those downloads to Server 2012 instances.

  • Re: minBytesPerSecond webLimit setting not taking effect

    Sep 27, 2017 12:10 PM|uncled1023|LINK

    Thank you for the additional info! I thought I was going crazy haha. It seems like the underlying HTTP API is the culprit. Hopefully we can get Microsoft to fix it.
  • Re: minBytesPerSecond webLimit setting not taking effect

    Nov 09, 2017 04:00 PM|alexkoster|LINK

    Hi all!
    I'm experiencing the same issue on both servers (W2016DC) on azure. Is there any solution ?
    Thanks!

  • Re: minBytesPerSecond webLimit setting not taking effect

    Nov 17, 2017 12:00 PM|kohepu|LINK

    I'm experience the same issue on Windows Server 2016 Essentials.  Any solution yet?

    Thanks!

  • Re: minBytesPerSecond webLimit setting not taking effect

    Nov 17, 2017 03:33 PM|keithBFS|LINK

    I've run into this issue as well.

    • Clients are only getting disconnected on HTTPS connections, downloading files over HTTP works fine.
    • SSL certificate is valid
    • I'm seeing those Timer_MinBytesPerSecond entries in the HTTPERR log
    • On Server 2008 R2 we never ran into this issue
    • We did a fresh install of Server 2016, not an upgrade
    • If I restart the site in IIS, downloads over HTTPS will work correctly for a while
  • Re: minBytesPerSecond webLimit setting not taking effect

    Nov 22, 2017 11:53 AM|kohepu|LINK

    Another suggestion that this is a bug in Windows Server 2016, relating to HTTPS/2 on IIS 10 - see https://forums.iis.net/post/2137486.aspx

    Can someone on the IIS team please have a look?

    Thanks

  • Re: minBytesPerSecond webLimit setting not taking effect

    Jan 20, 2018 09:59 AM|uncled1023|LINK

    I tried disabling HTTP/2 and it didn't seem to fix the issue.

    I wish we could get someone at MS to actually look at this.

    So I looked back today, and it seems to be fixed now.  I think it just required a restart after adding the Registry Keys for disabling HTTP/2.

    I will do some more testing, but it seems that the fix is to disable HTTP/2, which is a shame.

  • Re: minBytesPerSecond webLimit setting not taking effect

    Feb 01, 2018 01:14 AM|kohepu|LINK

    Since we disabled HTTP/2 on the server, the problem has gone away.  It is a shame to have to disable HTTP/2. Can someone from MS please investigate?