【问题标题】:ASP.Net 3.5 website project VS web application projectASP.Net 3.5 网站项目 VS Web 应用项目
【发布时间】:2010-12-08 09:57:54
【问题描述】:

我有一个有趣的场景: - 网站有 209,000 多个页面。 - 每次用户提交新文章/项目时,都会生成一个新页面,如果它引用了现有页面之一,那么该页面也会重新生成并保存。 - Windows 服务正在处理在站点目录中创建页面(文件)的页面的生成。 - 预生成页面的目的是保存来自数据库的请求数据,因为 75% 的数据将永远不会更新,并且在 FS 上保存预生成文件可以节省处理和内存。

它一直运作良好,但我们现在担心......

问题是磁盘空间快用完了,如果我们重新启动服务器,站点编译和运行需要一段时间,随着容量的增加,我们认为这会给我们带来严重的问题。

有没有办法预先编译网站并且我们仍然可以生成页面? (生成的页面都继承自一个类,并且有自定义控件)

有什么建议吗?

【问题讨论】:

  • 您能否详细说明,当您说“预生成”时,您的意思是页面的内容存储在数据库中,然后您在服务中渲染页面一次,然后将其保存到文件中系统,所以当用户浏览您的网站时,您不需要任何类型的内容管理系统数据库交互?稍后您说 procompiled,您是否引用了站点中的所有 aspx 页面只是 IIS 的标记页面?如果是这种情况,您如何在网站上线时重新编译?
  • 老兄,不是刻薄,但你关心的不应该是使用什么类型的项目,而应该是如何解雇那个想出不开这么大的“理由”的人来自数据库的内容库。祝你好运。
  • @Sky Sandars,完全同意,这种设计是如此不可扩展,他们迟早会重新设计。

标签: asp.net visual-studio-2008 web web-applications


【解决方案1】:

真正的问题是“项目类型”,即“网站”项目。 该网站项目使用 codedom 启用了动态编译,这就是它具有 App_code 文件夹的原因,该文件夹在“Web 应用程序”类型的项目中也不起作用。 每当有人访问它们时,所有生成的页面都会被编译。由于这个问题,我已转换为 Web 应用程序并取得了良好的效果。

谣言在 VS2008 微软 已删除的 Web 应用程序项目类型 但后来加了。

【讨论】:

    【解决方案2】:

    当页面数量很大时,使用页面存储内容总是会产生问题。由于所有页面都托管在 Web 服务器中,因此在不久的将来您可能会遇到问题。也许您可以考虑使用 WCM(Web 内容管理)应用程序而不是自动页面生成。

    回答您的问题,我相信您可以从一个类(从预编译的预生成页面)继承,但我认为您不会预编译新页面。只是为了强调这是一个猜测,因为我从来没有做过这样的事情。

    【讨论】:

    • 这是一个有趣的想法,我将进行实验。我希望它可以工作,因为新页面仅引用已编译的代码。
    猜你喜欢
    • 2011-02-03
    • 2010-09-25
    • 1970-01-01
    • 2012-04-29
    • 2010-11-06
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多