HttpWebRequest działa powoli po raz pierwszy w SQLCLR

Podczas tworzenia HttpWebRequest w ramach procedury przechowywanej CLR (zgodnie z poniższym kodem), pierwsze wywołanie po serwerze Sql jest (ponownie) uruchamiane lub po danym (ale nieokreślonym) okresie czasu czeka dość długo na Wywołanie metody GetResponse ().

Czy jest jakiś sposób na rozwiązanie tego problemu, który nie wiąże się z „hackiem”, takim jak uruchamianie zadania agenta serwera Sql co kilka minut, aby spróbować zapewnić, że pierwsze „powolne” połączenie zostanie wykonane przez agenta, a nie „prawdziwą” produkcję kod?

function SqlString MakeWebRequest(string address, string parameters, int connectTO)
{
  SqlString returnData;
  HttpWebRequest request = (HttpWebRequest)WebRequest.Create(String.Concat(address.ToString(), "?", parameters.ToString())); 
  request.Timeout = (int)connectTO;
  request.Method = "GET";
  using (WebResponse response = request.GetResponse())
  {
    using (Stream responseStream = response.GetResponseStream())
    {
      using (StreamReader reader = new StreamReader(responseStream))
      {
        SqlString responseFromServer = reader.ReadToEnd();
        returnData = responseFromServer;
      }
    }
  }
  response.Close();

  return returnData;
}

(Obsługa błędów i inny niekrytyczny kod został usunięty ze względu na zwięzłość)

Zobacz teżten wątek forum Sql Server.

questionAnswers(5)

yourAnswerToTheQuestion