应用程序在共享主机中保持活动状态,无法访问 IIS 管理器
Application Keep Alive in shared hosting with no access to IIS Manager
我正在使用 GoDaddy 的共享主机。我的网站通常在一段时间后打开时每次都需要时间加载。我了解到 Asp.net 网站会在超时后重新启动。
然后我才知道我们可以通过 IIS 管理器使我们的网站保持活动状态。但是我无法访问 IIS 管理器,因为我使用的是共享主机。我每次都能保持我的应用程序有效吗?
我们在 web.config 中是否有任何设置可以使应用程序保持活动状态?
最后我在另一个网站上找到了解决方案:这里是 link Keep alive IIS without accessing IIS manager
万一link被摧毁。我会在这里解释一下:
将此代码添加到您的 global.asax 文件并在 App_Start 中调用它,这将通过 运行 一个简单的刷新工作自动使您的网站保持活力。
private static void _SetupRefreshJob()
{
//remove a previous job
Action remove = HttpContext.Current.Cache["Refresh"] as Action;
if (remove is Action)
{
HttpContext.Current.Cache.Remove("Refresh");
remove.EndInvoke(null);
}
//get the worker
Action work = () =>
{
while (true)
{
Thread.Sleep(60000);
WebClient refresh = new WebClient();
try
{
refresh.UploadString("http://www.websitename.com/", string.Empty);
}
catch (Exception ex)
{
//snip...
}
finally
{
refresh.Dispose();
}
}
};
work.BeginInvoke(null, null);
//add this job to the cache
HttpContext.Current.Cache.Add(
"Refresh",
work,
null,
Cache.NoAbsoluteExpiration,
Cache.NoSlidingExpiration,
CacheItemPriority.Normal,
(s, o, r) => { _SetupRefreshJob(); }
);
}
我正在使用 GoDaddy 的共享主机。我的网站通常在一段时间后打开时每次都需要时间加载。我了解到 Asp.net 网站会在超时后重新启动。
然后我才知道我们可以通过 IIS 管理器使我们的网站保持活动状态。但是我无法访问 IIS 管理器,因为我使用的是共享主机。我每次都能保持我的应用程序有效吗?
我们在 web.config 中是否有任何设置可以使应用程序保持活动状态?
最后我在另一个网站上找到了解决方案:这里是 link Keep alive IIS without accessing IIS manager
万一link被摧毁。我会在这里解释一下:
将此代码添加到您的 global.asax 文件并在 App_Start 中调用它,这将通过 运行 一个简单的刷新工作自动使您的网站保持活力。
private static void _SetupRefreshJob()
{
//remove a previous job
Action remove = HttpContext.Current.Cache["Refresh"] as Action;
if (remove is Action)
{
HttpContext.Current.Cache.Remove("Refresh");
remove.EndInvoke(null);
}
//get the worker
Action work = () =>
{
while (true)
{
Thread.Sleep(60000);
WebClient refresh = new WebClient();
try
{
refresh.UploadString("http://www.websitename.com/", string.Empty);
}
catch (Exception ex)
{
//snip...
}
finally
{
refresh.Dispose();
}
}
};
work.BeginInvoke(null, null);
//add this job to the cache
HttpContext.Current.Cache.Add(
"Refresh",
work,
null,
Cache.NoAbsoluteExpiration,
Cache.NoSlidingExpiration,
CacheItemPriority.Normal,
(s, o, r) => { _SetupRefreshJob(); }
);
}