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\".
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.
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.
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:
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.
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.
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.
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.
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.
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.
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.
13 Posts
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?
4042 Posts
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
MSDN Community Support
Please remember to "Mark as Answer" the responses that resolved your issue.
13 Posts
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.
13 Posts
Re: minBytesPerSecond webLimit setting not taking effect
Apr 22, 2017 09:58 PM|uncled1023|LINK
Anyone else have any suggestions?
4042 Posts
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
MSDN Community Support
Please remember to "Mark as Answer" the responses that resolved your issue.
13 Posts
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
229 Posts
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?
13 Posts
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.
4042 Posts
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
MSDN Community Support
Please remember to "Mark as Answer" the responses that resolved your issue.
13 Posts
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.
13 Posts
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.
4042 Posts
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
MSDN Community Support
Please remember to "Mark as Answer" the responses that resolved your issue.
13 Posts
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.
13 Posts
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.
13 Posts
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.
1 Post
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.
13 Posts
Re: minBytesPerSecond webLimit setting not taking effect
Sep 27, 2017 12:10 PM|uncled1023|LINK
1 Post
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!
8 Posts
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!
1 Post
Re: minBytesPerSecond webLimit setting not taking effect
Nov 17, 2017 03:33 PM|keithBFS|LINK
I've run into this issue as well.
8 Posts
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
13 Posts
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.
8 Posts
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?