Я новичок в 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 внутренних ошибок сервера.Что-то пошло не так. Пожалуйста, попробуйте еще раз.