1.新建一个网站,第一个请求到达,会编译出一个dll文件,类似这样App_Web_cw4nogpy.dll。文件的位置大约在这里:
C:\Users\Administrator\AppData\Local\Temp\Temporary ASP.NET Files\vs\c98db087\87a093c1,
这个文件怎么生成的呢?
以aspx 文件为例:
处理aspx 的handler 是PageHandlerFactory:,会执行整个:
private IHttpHandler GetHandlerHelper(HttpContext context, string requestType, VirtualPath virtualPath, string physicalPath)
{
Page page = BuildManager.CreateInstanceFromVirtualPath(virtualPath, typeof(Page), context, true) as Page;
if (page == null)
{
return null;
}
page.TemplateControlVirtualPath = virtualPath;
return page;
}
顺着代码看去,最终会到BuilderManager:有这个函数
private BuildResult CompileWebFile(VirtualPath virtualPath)
里面的这一句话,就是生成这个dll 的文件名
string outputAssemblyName = "App_Web_" + BuildManager.GenerateRandomAssemblyName(BuildManager.GetGeneratedAssemblyBaseName(virtualPath), false);
产生的随机文件名,确实是8位。