2016-01-02 76 views
0

目前我有web api 2.2自主服務器從控制檯啓動,超過300個客戶端程序每30秒通過HttpClient發送請求。 服務器被配置爲偵聽https連接,如後http://pfelix.wordpress.com/2012/02/26/enabling-https-with-self-hosted-asp-net-web-api/
但是從最近的時間,服務器停止處理大部分客戶端請求。當服務器啓動時,他工作得很好,但幾分鐘後他沒有處理其中的很多問題。在服務器上沒有例外,但在客戶端上是TaskCanceledException(可能的請求超時)。

然後我試着設置選項:
HttpSelfHostConfiguration.MaxConcurrentRequests = 2000;
ServicePointManager.DefaultConnectionLimit = 2000;
但它不幫助我。

發現過程的轉儲文件後,我發現有7個線程卡在方法「HttpReceiveClientCertificate」stack trace image中。對於測試我刪除HttpSelfHostConfiguration.ClientCredentialType = HttpClientCredentialType.Certificate和請求通常收到的服務器。 似乎並非所有的請求處理,因爲查找證書需要很多時間。
如何增加處理傳入的請求?asp.net web api 2.2自我主機緩慢處理請求

+0

在IIS上託管應用程序?我不會在生產環境中使用自主機或IIS Express。 –

+0

另外,你是否檢查了應用程序的內存使用情況,也許你有內存泄漏? –

+0

@WouterHuysentruit 不是的。它是控制檯應用程序啓動asp.net web api 2.2自我主機服務器,如後在http://www.asp.net/web-api/overview/older-versions/self-host-a- Web的API。我們有另一個高負載selfhost服務器,但沒有使用https連接,它工作正常。 – vmalyuta

回答

0

我遇到了同樣的問題。

在我的情況下,使用'netsh http add sslcert'命令完成SSL證書配置。

添加'clientcertnegotiation = Enable'允許增加處理的請求數。