如何使用 SQL CLR 方法调用网页?

发布于 2024-10-11 18:26:15 字数 223 浏览 4 评论 0原文

我有一个 ASP.NET MVC 应用程序,需要一段时间才能加载到我的生产服务器上。我想编写一个脚本每 10 分钟调用一次我的页面,以避免页面在服务器上被废弃,这会导致服务器重新加载它们。

我正在考虑使用 SQL Server 存储过程每 10 分钟调用我的页面以保持页面活动。

我读过可以使用 CLR 来做到这一点,但我不确定如何做。有谁有如何使用 CLR 在 SQL 存储过程中调用网页的示例吗?

I have an asp.net mvc application that take a while to load on my production server. I would like to write a script to call my pages every 10 minutes to avoid the pages from being scrapped on the server, which would then cause the server to reload them.

I was thinking of using a SQL Server stored procedure to call my pages every 10 minutes to keep the pages alive.

I've read that I can do this using CLR, but I am not sure how. Does anyone have an example of how to call webpages in a SQL Stored Procedure using CLR?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

凶凌 2024-10-18 18:26:15

我不知道为什么你想为此使用存储过程。

只需编写一个简单的控制台应用程序来“调用”该页面即可。然后使用计划任务来运行控制台应用程序。

I have no idea why you would want to use a stored procedure for this.

Just write a simple console application to "call" the page. Then use a scheduled task to run the console application.

怼怹恏 2024-10-18 18:26:15

代码未经测试,但类似的东西应该可以工作。

您可能还需要值得信赖的套装。

ALTER DATABASE Foo SET TRUSTWORTHY ON;

代码:

public partial class WebProc
{
   [SqlFunction()]
   public static string WebQuery()
   {
      WebRequest request = HttpWebRequest.Create("http://www.google.com");
      WebResponse response = request.GetResponse();
      Stream dataStream = response.GetResponseStream();
      StreamReader reader = new StreamReader (dataStream);
      string responseFromServer = reader.ReadToEnd();
      return responseFromServer;
   }
}

Code untested but something like this should work.

You'll probably also need TRUSTWORTHY SET.

ALTER DATABASE Foo SET TRUSTWORTHY ON;

Code:

public partial class WebProc
{
   [SqlFunction()]
   public static string WebQuery()
   {
      WebRequest request = HttpWebRequest.Create("http://www.google.com");
      WebResponse response = request.GetResponse();
      Stream dataStream = response.GetResponseStream();
      StreamReader reader = new StreamReader (dataStream);
      string responseFromServer = reader.ReadToEnd();
      return responseFromServer;
   }
}
楠木可依 2024-10-18 18:26:15

我不知道为什么您要为此使用存储过程。

只需编写一个简单的控制台应用程序来“调用”该页面即可。然后使用计划任务来运行控制台应用程序。

可以这样做(当然),但这不是问题所问的;)

贾芬的答案对于这个问题来说是正确的。

最佳答案(恕我直言)是修复您的生产服务器(即重新配置设置),这样它就不会每 10 分钟“废弃”您的页面。

当普通的手提钻就可以的时候,为什么还要使用手提钻(控制台应用程序或数据库内的 .net 或其他什么)?

I have no idea why you would want to use a stored procedure for this.

Just write a simple console application to "call" the page. Then use a scheduled task to run the console application.

You could do that (of course) but that's not what the question was asking ;)

Jafin's answer is correct for the question.

The best answer (IMHO) would be to fix your production server (i.e. reconfigure the settings) so that it doesn't "scrap" your pages every 10 minutes.

Why use a jackhammer (console app or .net inside the database or whatever) when a regular one will do?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文