代码之家  ›  专栏  ›  技术社区  ›  P.Brian.Mackey

理解ASP.NET网站项目汇编

  •  1
  • P.Brian.Mackey  · 技术社区  · 14 年前

    我是这样理解的asp.net汇编。请纠正我理解上的错误。

    如果我不发布一个网站项目,而只是简单地将所有文件复制到web目录,我知道第一次访问它编译,所以第一次访问它有点慢。从那时起(如果我不更新源代码),网站将保持编译正确(例如,它不在过期的缓存中)?

    如果我以某种方式更新了页面的源代码呢ASP.NET检测更改并重新编译?它是只重新编译一页还是把所有的东西都放进垃圾箱\MySiteName.dll?

    最后,如果我发布了一个站点,我就不能更新源代码(aspx是的,但不能更新代码隐藏页)。这将预编译站点,以便第一次加载很快。在新的发布之前,网站将一直被编译。

    3 回复  |  直到 14 年前
        1
  •  1
  •   JonH    14 年前

    Here's an article 那会有帮助的。这比你所说的要多一些,但应该能帮到你。

        2
  •  2
  •   jdecuyper    10 年前

    没错,每当您对源代码文件应用更改时,网站项目程序集的缓存就会失效。如MSDN所述:

    对动态编译的 文件将自动使 文件的缓存编译程序集和 触发所有受影响对象的重新编译 资源。下一次请求 代码是由,ASP.NET认识到 代码已经改变了 重新编译受影响的资源

    据我所知,程序集没有过期日期,除非它被删除(程序集存储在%WINDIR%\微软.NET\框架\v2.0.50727\临时ASP.NET文件\名称\u或\u网站)。

    有趣的注意:对于自动编译,离开 调试=错误 在你的web.config文件一旦你把你的网站项目推到生产环境中。如果您忘记了它,批编译将被关闭,并将为每个请求的源页面生成一个程序集!你可以在网上看到更多关于它的信息 If broken it is, fix it you should 的博客。

        3
  •  1
  •   Andrew    14 年前

    基本上,我认为你是对的。我要告诉你的一件事是,预编译ASP.NET使第一次加载不那么慢。基本上,你用的是aspnet_编译器.exe对于此任务。看到了吗 http://msdn.microsoft.com/en-us/library/bb398860.aspx