2015-11-13 71 views
4

我得到了一个Owin自托管的web-api服务器,而且我想知道是否需要在有大量文件下载时更改超时设置? 我正在使用的客户端使用HttpCompletionOption.ResponseHeadersRead读取响应。Owin Self-Hosted WebApi Timeout Settings

无法读取传输连接的数据:

在调试过程中,我停在断点一段时间后,我试图从收到的流中读取了在客户端异常现有连接被远程主机强制关闭。

在调试时我可以重现此问题。它发生在服务器的Get-Request返回之后,在断点处等待大约30秒之后。

这是由于某种类型的空闲超时,因为我坚持在一个断点,不接收的流上工作?或者当我从流中读取时,它也可能发生,当我的收集缓慢并且需要很长时间?

回答

2

很古老的问题,但可以帮助谁击中相同的墙。 我有一个流媒体内容同样的问题,找到了最初的线索HTTPERR文件夹(C:\Windows\System32\LogFiles\HTTPERR)

2016-08-12 09:17:52 ::1%0 60095 ::1%0 8000 HTTP/1.1 GET 
/endpoint/audiostream/0/0/streamer.mp3 - - - Timer_MinBytesPerSecond - 

2016-08-12 09:18:19 ::1%0 60118 ::1%0 8000 HTTP/1.1 GET 
/endpoint/audiostream/0/0/streamer.mp3 - - - Request_Cancelled - 

OwinHttpListenerTimeOutManager属性,可以让你改变最超时/范围内。我发现让我的webapp HttpListener实例的唯一方法是通过访问其属性

var listener = (OwinHttpListener); 
app.Properties["Microsoft.Owin.Host.HttpListener.OwinHttpListener" ]); 
listener.Listener.TimeoutManager.MinSendBytesPerSecond = uint.MaxValue; 

owin代码库,uint.MaxValueMinSendBytesPerSecond只会禁用标志。

相关问题