2016-01-02 38 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'允许增加处理的请求数。