При создании httprequest с использованием restclient внутренняя ошибка сервера выдается - PullRequest
0 голосов
/ 18 июня 2019

Я новичок в MVC.Я использую restclient для выполнения http-запроса. Он работает нормально на локальном компьютере, но на сервере, когда на запрос уходит более 90 секунд, выдается внутренняя ошибка сервера 500. Не уверен, в чем проблема?

In the while loop in the code iam making a request many times (until the status is ready) sometimes it may take more than 3 minutes for the status to be ready.I am not sure if this is causing the problem.

Я попытался увеличить время ожидания выполнения и увеличил многие параметры времени ожидания в IIS, но ничего не получалось.и я попытался перевести поток в спящий режим на 10 секунд в цикле while, чтобы число запросов не было слишком большим.

public ActionResult getRating ()

{

"----some code to find domain and ip's"


var clientInitialise = new RestClient();
 clientInitialise.Timeout = 300000;
  if (Session["ipAddress"] == "" || Session["ipAddress"] == null)
  {
     System.Uri uri = new System.Uri("https://api.xxxx.com/api/v2/analyze?host=" + Session["URLRATES"].ToString());
       clientInitialise.BaseUrl = uri;
    }else
      {
       System.Uri uri = new System.Uri("https://api.xxxx.com/api/v2/analyze?host=" + domain + "&s=" + Session["ipAddress"].ToString());
        clientInitialise.BaseUrl = uri;
        }

                    var requestInitialise = new RestRequest(Method.GET);
                    requestInitialise.AddHeader("Content-Type", "application/json");
                    requestInitialise.AddHeader("X-Requested-With", "POSTMAN");
                    IRestResponse responseInitialise = clientInitialise.Execute(requestInitialise);

                    var XMLReportList = responseInitialise.Content;

                    string ipAddress = "";
                    bool endloop = true;

while (endloop) {try {//System.Threading.Thread.Sleep(10000);responseInitialise = clientInitialise.Execute (requestInitialise);Имена списков = responseInitialise.Content.Split (','). ToList ();foreach (список переменных в именах) {string innerIPADDRESS = "";string splittedString = "";

                                splittedString = List.Replace("\"", "");

                                try
                                {
                                    if (splittedString.Length > 12)
                                    {

                                        if (splittedString.Contains("status:READY") || splittedString.Contains("status: READY"))
                                        {
                                            endloop = false;
                                            break;
                                        }
                                    }
                                    else
                                    {
                                        if (splittedString.ToString() == "status:READY")
                                        {
                                            endloop = false;
                                            break;
                                        }
                                    }
                                }
                                catch (Exception e)
                                {

                                }
                            }
                        }
                        catch (Exception e)
                        {

                        }

                    }
}

Отображается только 500 внутренних ошибок сервера.Что-то пошло не так. Пожалуйста, попробуйте еще раз.

...