ASP .NET及时

时间:2013-07-26 10:19:46

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

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

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

3 个答案:

答案 0 :(得分:3)

  

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

ASP.NET Compilation Overview

  

默认情况下,当用户首次从网站请求资源(如ASP.NET页面(.aspx文件))时,动态编译ASP.NET网页和代码文件。在第一次编译页面和代码文件之后,编译的资源被缓存,以便对同一页面的后续请求非常有效。

Understanding ASP.NET Dynamic Compilation

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

你可以自己测试一下。

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   文件\根\ 26676eb7 \ 92c7e946 \ App_Web_ip00zfkv.dll

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

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