ASP网站如何将dll与网页匹配?

时间:2013-01-08 13:54:07

标签: asp.net .net asp.net-mvc iis webdev.webserver

当您访问ASP网站的根目录(webforms或MVC)时,Web服务器如何知道要加载哪个.aspx或.cshtml文件,以及bin/目录中的哪个dll包含代码执行?它如何与两者相匹配?

1 个答案:

答案 0 :(得分:5)

我不知道您是否正在寻找非常技术性的答案或简单的概述。所以,这是简单概述

默认文件

  

当你转到ASP网站的根目录时

ASP,HTML,PHP或您使用的任何技术,Web服务器知道要搜索的默认文档,并在没有提供文档时显示,例如,在Microsoft IIS Server中,默认文档为:

enter image description here

对于Apache服务器来说,这是相同的,有一个设置告诉服务器“如果你没有文档名,请使用这个”设置,这个设置可以在.htaccess文件中找到并具有:

DirectoryIndex  index.php index.html index.htm default.html default.htm home.html

在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
);

如果这表明,如果没有提供路线,它将与/Home/Index相同。

装配体

关于DLL部分,关于你的第一份文件......

.NET站点是预编译的,并公开了它们的名称空间和属性,您将在ASP.NET Webforms中看到第一行代码中的类似内容:

<%@ Page Title="Home Page" Language="C#" 
    MasterPageFile="~/Site.Master" 
    AutoEventWireup="true" 
    CodeBehind="Default.aspx.cs" 
    Inherits="WebApplication3._Default" %>

这告诉服务器在WebApplication3._Default内运行Default.aspx.cs,并从那里附加任何所需的程序集来运行代码。