3

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

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

4

3 回答 3

3

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

ASP.NET 编译概述

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

了解 ASP.NET 动态编译

于 2013-07-26T10:25:54.537 回答
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 Files\root\26676eb7\92c7e946\App_Web_ip00zfkv.dll

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

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

于 2013-07-26T10:37:07.560 回答
1

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

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

于 2013-07-26T10:24:36.273 回答