【问题标题】:ASP.NET Entry Point?ASP.NET 入口点?
【发布时间】:2010-11-24 08:08:15
【问题描述】:

刚刚创建了一个空白的“ASP.NET Web 应用程序”。入口点在哪里?

我看到“Default.aspx”似乎是调用的默认模板。 “Site.Master”我猜它是一个布局文件。 “Global.asax”似乎为事件处理提供了一些方法存根。然后是“Web.config”,它似乎有一些特定于站点的设置,例如数据库连接字符串和一些身份验证内容。

但是我在哪里看不到任何“路由”或任何表明默认情况下应该调用“Default.aspx”,或者应该使用“Global.asax”来处理事件的东西。这东西在哪里指定?它是否已融入 ASP 的核心?我不能通过一种 C# 方法过滤所有请求,然后按我的意愿委托吗?并返回某种 Http 响应?

【问题讨论】:

  • 您是在问当 ASP.NET Web 应用程序启动(接受第一个请求)时执行的第一行代码是什么,还是在向网站?
  • 认为我想知道当有新请求进来时第一行代码会受到影响。我可能忘记了 ASP.NET 与 PHP 应用程序的工作方式不同因为 ASP.NET 只启动一次,而在 PHP 中它会在每个请求上运行所有内容。
  • 是的,只有在加载时才会在 ASP.NET 应用程序中发生某些事情,然后在每个请求上都会发生这些事情。这些链接分别涵盖了 ASP.NET Webforms 应用程序和 ASP.NET MVC 应用程序的页面生命周期中发生的情况 -> msdn.microsoft.com/en-us/library/ms178472(v=vs.100).aspxasp.net/mvc/tutorials/mvc-5/…

标签: asp.net


【解决方案1】:

我想我想知道当有新请求进来时第一行代码会被命中。

HttpApplication 类包含应用程序的第一行代码。它的构造函数在很大程度上是您的应用程序的入口点。 From the docs

在所有核心应用程序对象都被初始化之后,通过创建一个 HttpApplication 类的实例来启动应用程序。

有两种规范的方法可以编写为新请求而命中的第一行代码。两者都涉及创建 Global.asax 文件并处理其事件。

要处理应用程序事件或方法,您可以在应用程序的根目录中创建一个名为 Global.asax 的文件。

您需要处理Application_Start 和/或Application_BeginRequest

  • Application_Start 用于在对应用程序的第一个请求时被命中的代码。每次我们重启应用,下一个请求都会进入这里。这是每次应用启动。
  • Application_BeginRequest 用于在对应用程序的每个请求中被命中的代码。这是每个请求。

当然,这一切都随着 ASP.NET Core 而改变。

【讨论】:

    【解决方案2】:

    没有入口点的概念。它的工作方式是用户向 url 发送 HTTP 请求,然后该 url 向用户发送响应。在项目的属性中,您可以配置当您点击 F5 时在 Visual Studio 中启动哪个 URL,因为默认情况下它会启动您当前正在编辑的文件。

    Web 服务器还有一个默认文档的概念,即如果您不指定任何页面,它将按照配置的顺序加载默认文档:

    【讨论】:

    • 好答案!我想我必须问另一个问题才能得到我想要的解决方案
    【解决方案3】:

    该条目是处理 Asp.net 请求的 IIS ISAPI 扩展。如果你想要路由,你可以使用 Asp.net mvc,或者使用 HttpModule 来拦截和路由请求。

    在此处查看有关 Asp.net 的更多信息。 https://web.archive.org/web/20100620062357/https://www.west-wind.com/presentations/howaspnetworks/howaspnetworks.asp

    【讨论】:

      【解决方案4】:

      默认情况下,ASP.NET 仅使用物理文件路径来确定要显示的页面。 Default.aspx 是默认文件,或者因为它是项目的启动文件,或者因为它被映射为 IIS 中根文件夹的默认文档。

      如果您想要自定义路由,您可以选择使用添加到框架中的路由组件作为 ASP.NET MVC 的一部分。有一个关于如何使用这个here的指南

      【讨论】:

        【解决方案5】:

        默认调用的文件是在IIS上指定的,一般是default.aspx。

        【讨论】:

        • 好吧....在我通过 VS 运行的开发服务器上按 F5 呢?某处有项目设置吗?
        • 不,该服务器使用 default.aspx 作为默认页面(我认为),但您可以在 Visual Studio 上选择起始页,通过右键单击并选择起始页。该起始页面是您按 F5 时加载的页面
        猜你喜欢
        • 1970-01-01
        • 2016-05-15
        • 1970-01-01
        • 1970-01-01
        • 2014-06-07
        • 2017-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多