62,243
社区成员




protected override void Render(HtmlTextWriter writer)
{
if (Request.QueryString["sta"] == null)
base.Render(writer);
else
{
var sb = new StringBuilder();
base.Render(new Html32TextWriter(new StringWriter(sb)));
var str = sb.ToString();
File.WriteAllText(MapPath("~/index.html"), str);
writer.Write(str);
}
}
这样可以用访问时的一个url参数sta来标记是否需要生成静态页面。
然后,排量生成静态页面,应该使用一个桌面应用程序。然后把从数据库中把当前时间点需要生成静态页面的所有url独取出来,进行循环遍历,例如foreach (var x in lst)
{
var web = new WebClient();
var url = string.Format("http://{0}:{1}/{2}", host, port, x);
// 如果你需要捕获返回结果,例如需要统计哪些页面已经成功生成静态页面,这里应该注册 web.DownloadStringCompleted 事件处理。
web.DownloadStringAsync(new Uri(url));
}
批量生成静态页面,根本不是asp.net程序该干的事情。