0

「システムに十分なバッファ領域がなかったか、キューがいっぱいだったため、ソケットでの操作を実行できませんでした」というエラーのため、アプリケーションのパフォーマンスの問題に直面しています。

基本的な申請の流れは、1.Web APIへの申請と、データベースへのWebAPIの申請です。

この問題を解決するには、

  1. maxport を 15000 まで増やしました - https://docs.microsoft.com/en-us/troubleshoot/windows-client/networking/connect-tcp-greater-than-5000-error-wsaenobufs-10055
  2. アプリケーション レベルですべての接続が閉じていることを確認しました。3.アプリケーションで「Using」キーワードを使用しています。4.確認したところ、Time_wait 状態の接続が非常に多くあります。

これ以外に解決策があれば教えてください。

コード

public IHttpActionResult Products([FromBody] ProductRequest productRequest)
    {
        if (productRequest != null)
        {
            var request = Mapper.Map<SolrProductRequest>(productRequest);
            var response = _searchProxy.GetProducts(request);

            return Ok(response);
        }

        return BadRequest();
    }

public string Get(string relativeUrl, IEnumerable<KeyValuePair<string, string>> parameters)
    {
  

        var u = new UriBuilder(_serverUrl);
        u.Path += relativeUrl;
        var request = (HttpWebRequest)WebRequest.Create(u.Uri);
        request.Method = "POST";
        request.ContentType = "application/x-www-form-urlencoded";
        var qs = string.Join("&", parameters
            .Select(kv => string.Format("{0}={1}", HttpUtility.UrlEncode(kv.Key), HttpUtility.UrlEncode(kv.Value)))
            .ToArray());
        request.ContentLength = Encoding.UTF8.GetByteCount(qs);
        request.ProtocolVersion = HttpVersion.Version11;
        request.KeepAlive = true;
        try
        {
            using (var postParams = request.GetRequestStream())
            using (var sw = new StreamWriter(postParams))
                sw.Write(qs);
            using (var response = request.GetResponse())
            using (var responseStream = response.GetResponseStream())
            using (var sr = new StreamReader(responseStream, Encoding.UTF8, true))
            {
                var solrResult = sr.ReadToEnd();

                //if (CustomValues != null && CustomValues.Count > 0)
                //{
                //    PopulateCustomValues(solrResult);
                //}
                return solrResult;
            }
        }
        catch (WebException e)
        {
            throw new SolrConnectionException(e);
        }
    }

ありがとう

4

0 に答える 0