the*_*oop 1 .net asp.net iis asp.net-mvc webdev.webserver
当你转到ASP网站的根目录(webforms或MVC)时,web服务器如何知道要加载哪个.aspx或.cshtml文件,以及bin/目录中哪个dll 包含要执行的代码?它如何与两者相匹配?
我不知道你是在寻找一个非常技术性的答案,还是一个简单的概述.所以,这是一个简单的概述.
当你去ASP网站的根目录
ASP,HTML,PHP或您使用的任何技术,Web服务器都知道要搜索的默认文档,并在没有提供文档时显示,例如,在Microsoft IIS Server中,默认文档是:

这对于Apache服务器来说是相同的,有一个设置告诉服务器"如果你没有文件名,请使用这个"设置,这个设置在.htaccess文件中找到并具有:
DirectoryIndex index.php index.html index.htm default.html default.htm home.html
Run Code Online (Sandbox Code Playgroud)
在ASP.NET MVC中,您使用路由表,它位于Global.asax提到路由的文件中,可以通过直接指定路由或调用外部文件(类),并且常用路由是:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
Run Code Online (Sandbox Code Playgroud)
如果这表明,如果没有提供路线,它将与之相同/Home/Index.
关于DLLs部分,关于你的第一份文件......
.NET站点是预编译的,并公开了它们的名称空间和属性,你将在ASP.NET Webforms中,在第一行代码中这样:
<%@ Page Title="Home Page" Language="C#"
MasterPageFile="~/Site.Master"
AutoEventWireup="true"
CodeBehind="Default.aspx.cs"
Inherits="WebApplication3._Default" %>
Run Code Online (Sandbox Code Playgroud)
这告诉服务器运行WebApplication3._Default内部Default.aspx.cs,从那里,它将附加任何所需的程序集来运行代码.