ASP.NET怎样开一条单独的线程批量生成HTML页面?(不需要保持跟客户端的HTTP连接)

CodeBunny 2006-01-09 07:21:12
一个ASP网站有十几万页面,全部生成一次用传统的ASP方法估计得一天左右.

我看有的.NET的文章系统可以在后台提交一个"重新生成全部页面"的请求,然后客户端就可以关闭了,等过一会儿就发现服务器上的页面都已经用新模板重新生成了.

我想问一下这是用什么办法做的?查了一天了也没看到相关的介绍,看ASP.NET异步的帮助好象跟我说的要求也不太一样~

哪位老大知道的请告诉我一下,谢谢了.

PS:我从来是用ASP的,ASP.NET只是会些皮毛,说的时候最好能说仔细一点,不要只说思路. (有示例源码更好:D)
...全文
249 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ivony 2006-01-10
  • 打赏
  • 举报
回复
可以通过外部程序来实现,因为ASP.NET的进程受IIS的控制,随时可能会关闭,不稳定。
外部程序可以是一个服务或者一个EXE。只要ASP.NET有权限就行……
CodeBunny 2006-01-10
  • 打赏
  • 举报
回复
大概是我没说清楚,诸位的方法跟我的想法不太一致.

我是希望象以前的C/S模式那样,客户端点一下"开始"后就不用再管了,以后的事由服务器端来做,而且服务器完成任务后也不必把结果返回给客户端.

To:haolaiwu(夜风)
不管用什么方式,服务器资源当然都是要占用的了,但这样的方式占用地更少

TO:zqsntws(轻松)
ajax还是得客户端不断向Server发请求并等待Server的影响呀~
ipqxiang 2006-01-10
  • 打赏
  • 举报
回复
<%@ OutputCache Duration="100" VaryByParam="none" %>试试
zqsntws 2006-01-10
  • 打赏
  • 举报
回复
ajax,楼主查一下这方面的资料看看。
稍微有点无敌 2006-01-10
  • 打赏
  • 举报
回复
你这个同样要耗费服务器端资源
当然 .net中的多线程可以解决你的问题
CodeBunny 2006-01-10
  • 打赏
  • 举报
回复
晕,一个回复没有?
jueban9818 2006-01-10
  • 打赏
  • 举报
回复
mark
time_is_life 2006-01-10
  • 打赏
  • 举报
回复
mark
CodeBunny 2006-01-10
  • 打赏
  • 举报
回复
谢谢 ah__fu(阿福) ,我试一下先.

关于生成的速度,楼上有几位可能没仔细看我的贴子: 我原来是用ASP的方式生成的,因为ASP的种种限制,用的是JS调用ASP页,所以受网速影响很明显. 我试过,用C#写个生成程序放服务器上运行,全部重新生成一次很快的,但用ASP生成,特别是网速的限制,生成起来郁闷得不得了,平均一秒钟也就两个页面...
hyj_828 2006-01-10
  • 打赏
  • 举报
回复
綫程應該足以.
Ivony 2006-01-10
  • 打赏
  • 举报
回复
生成的速度也要看Web服务器的硬盘是否强劲,我的电影网站生成大概是十分钟左右,页面应该是一万左右。当然,我很多地方没优化,例如嵌入文件缓存等。
noyester 2006-01-10
  • 打赏
  • 举报
回复
十几万页面根本就不多,需要一天么?况且生成条件可以设置的灵活一些,只要生成最新的就可以了,我记得上次生成几万个好象才用了几分钟
ah__fu 2006-01-10
  • 打赏
  • 举报
回复
用多线程就行
class GenPage
{
public GenPage()
{
ThreadPool.QueueUserWorkItem(new WaitCallback(_Work_tp));
}

private void _Work_tp(object State)
{
//这里放置生成HTML文件的代码
}
}

在一个start.aspx的页面中:
Application["GenPage"] = new GenPage();

就这样,就会自动在后台执行了
我觉得,多线程的对象一定要放在Application中,这样还可以在需要的时候进行中止
安全起见,最好在Application_Start和Application_End事件中加上处理代码。
eflea 2006-01-10
  • 打赏
  • 举报
回复
楼上说得对
如果非要用web方式的话就用多线程

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧