MVC:保持活力或使初始负载超快

Alv*_*nus 0 c# asp.net iis asp.net-mvc asp.net-mvc-4

目标是我希望我的整个网站响应时间是即时的.

问题是我没有IIS访问权限,我的网站使用外部服务托管,我无法控制IIS面板.

我现在的方法是使用一个预定的代码来保持我的网站活着.这种方法的问题是托管服务有一个算法,每隔几个小时关闭所有托管网站.

这就是为什么我需要实施另一种方法来每次运行时预热/预加载网站.

如果无法访问IIS面板,如何执行此操作?

Mic*_*kyD 5

该解决方案不需要第三方站点; 机器人; 或者应用程序,你自己只编写一个非常简单的应用程序,定期执行一个简单的Web功能,也许是一个REST GET.通过执行此功能,每隔几分钟,您不仅要保证IIS池不会超时并且对客户端感到冷,而且它还具有确保您的网站在温暖状态下运行的良好效果(JIT' d;并且正在运行)准备好对非心跳网站请求的实际请求.

例如

在您的网站上公开一个REST API,www.misspiggy.com/api/hiyaaaa除了返回HTTP 200之外什么都不做.

通过在ASP.NET应用程序中实现此功能,对上述URL的任何请求都将导致您停止或冷却的ASP.NET网站在以下期间进行JIT:

  1. 第一次部署(即使只是在请求期间)
  2. IIS AppPool超时后需要按需重启

发出REST请求的客户端代码可以是任何内容:

  • 控制台应用
  • 一个Windows服务
  • WinForms/WPF应用程序

可以通过Windows任务计划程序触发控制台应用程序,每5分钟一次,从而节省您在计划程序中构建的麻烦.

我现在的方法是使用一个预定的代码来保持我的网站活着.这种方法的问题是托管服务有一个算法,每隔几个小时关闭所有托管网站

我建议你将ping时间设置为几分钟而不是几小时.

无需管理员访问服务器

问题是我没有IIS访问权限,我的网站使用外部服务托管,我无法控制IIS面板

需要指出的是,此解决方案不要求您在服务器上安装任何新内容,也不要在服务器上进行任何更改.

天蓝

这是有趣的是,Azure的应用洞察具有可用性测试,虽然设计用于测试网站的可用性,可以用来保存你的网站活着,温暖的准备去Web客户端的这个目的相同.事实上,这就是我为我的网络应用做的事情.

这样做可以使响应时间和延迟尽可能低.

在此输入图像描述