HttpWebRequest 在 SQLCLR 中第一次运行缓慢

2024-03-09

在 CLR 存储过程中发出 HttpWebRequest 时(按照下面的代码),Sql Server(重新)启动后或在给定(但不确定)的时间段后的第一次调用会在 Sql Server 上等待相当长的时间。 GetResponse() 方法调用。

有没有什么方法可以解决这个问题,而不涉及“黑客”,例如每隔几分钟运行一次 Sql Server 代理作业,以尝试确保第一个“慢速”调用是由代理进行的,而不是“真正的”生产代码?

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;
}

(为了简洁起见,错误处理和其他非关键代码已被删除)


也可以看看这个 Sql Server 论坛主题 http://social.msdn.microsoft.com/forums/en-US/sqlnetfx/thread/06545328-cb24-45bd-835c-db93f13bbe95/?prof=required.


这对我来说是一个问题HttpWebRequest首先。这是由于类正在寻找要使用的代理。如果您设置对象的Proxy价值null/Nothing,它会立即拉紧。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HttpWebRequest 在 SQLCLR 中第一次运行缓慢 的相关文章

随机推荐