2015-11-13 103 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只會禁用標誌。

相關問題