【问题标题】:ASP .NET Just in timeASP .NET 及时
【发布时间】:2013-07-26 10:19:46
【问题描述】:

对于每个 http 请求,ASP .NET 页面是否及时编译(JITting)或页面第一次被请求时,或应用程序启动时?

我找不到任何关于此的资源。

【问题讨论】:

标签: asp.net .net iis asp-classic


【解决方案1】:

当用户首次从网站请求资源时,ASP.NET 会自动编译您的应用程序代码和任何相关资源。

ASP.NET Compilation Overview

默认情况下,当用户首次从网站请求资源(例如 ASP.NET 页面(.aspx 文件))时,会动态编译 ASP.NET 网页和代码文件。页面和代码文件第一次编译完成后,将编译后的资源缓存起来,这样后续对同一页面的请求效率极高。

Understanding ASP.NET Dynamic Compilation

【讨论】:

    【解决方案2】:

    默认情况下每个页面的第一个请求 - 请参阅Understanding ASP.NET Dynamic compilation。然后它会在页面更改后第一次被请求时重新编译。

    不过,您可以在配置文件中指定预编译选项

    【讨论】:

      【解决方案3】:

      你可以自己测试一下。

      在C:\inetpub\wwwroot目录下创建mypage.aspx并写下:

      <%@ Page language="C#" debug="true" %>
      <html>
      <head></head>
      <%= this.GetType().Assembly.Location %>
      </html>
      

      当你在浏览器中打开它时,你会得到这样的东西:

      C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET 文件\root\26676eb7\92c7e946\App_Web_ip00zfkv.dll

      转到该地址,您将看到生成的文件(注意,由于 Page 指令中指定了 debug=true,因此不会删除源代码)。

      您可以创建另一个请求(只需刷新页面),您可以看到 dll 名称没有更改。但是,如果您更改 mypage.aspx 文件中的某些内容,则会生成具有不同名称的新 dll。

      【讨论】:

        猜你喜欢
        • 2017-08-03
        • 2012-02-24
        • 1970-01-01
        • 2011-05-02
        • 2016-12-05
        • 2022-12-04
        • 1970-01-01
        • 1970-01-01
        • 2011-04-08
        相关资源
        最近更新 更多