首页 > 解决方案 > index.html 在 Global.asax.cs 或 WebApiConfig.cs 之前运行

问题描述

我正在调试为什么属性路由不起作用并发现使用 VS 2017 的 WEB API 项目的奇怪行为,即

如果它是“设置为起始页”,任何网页都将在 Global.asax.cs 之前运行。

方法如下:

  1. VS 2017,新项目,C#,web,ASP.NET Web 应用程序。
  2. 空模板,选中 WebAPI 复选框。
  3. 它现在在 App_Start 中有 Global.asax、WebApiConfig.cs,在任一文件中放置一个断点。
  4. 将 index.html 文件添加到项目中,为其添加一个按钮,并将其设置为起始页。
  5. F5,index.html 运行,点击按钮,一切都按预期运行但从命中 WebApiConfig.cs 中的断点。

索引.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
    <input type="button" value="Go" onclick="alert('hello');" />
</body>
</html>

MS站点上的这个示例项目总是遇到断点:如果没有设置起始页,那么总是在其他所有内容之前到达它,否则在 index.html 之后显示。比较 .csproj 文件,唯一的区别是它使用 .NET 框架 4.6 与 4.5.2。但是,如前所述,使用 4.6 创建一个新项目,结果是相同的。

标签: asp.net-web-api

解决方案


尽管 index.html 是项目的一部分,但启动它不会像我假设的那样触发 App_Start,App_Start 仅在服务器端 .aspx 启动或此项目被 Api 请求命中时触发。


推荐阅读