为什么在 VS2008/Casini 中启动调试时 Application_Init 会触发两次?

2024-06-28

为什么在 VS2008/Casini 中启动调试时 Application_Init 会触发两次?

是的,它发生在 global.asax 中。虽然看起来相当随机,但只偶尔发生一次。


我假设您引用的是 ASP.NET MVC 应用程序中的 Global.asax 文件。请注意,您的 global.asax 扩展了 System.Web.HttpApplication 例如:

public class MvcApplication : System.Web.HttpApplication
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        // (snip)
    }

    protected void Application_Init()
    {
        // Why is this running twice?
    }

    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        RegisterRoutes(RouteTable.Routes);
    }
}

基本上正在实例化多个 HttpApplication 实例来服务多个传入的 HTTP 请求 http://odetocode.com/articles/89.aspx。请求完成后,HttpApplication 实例将返回到池中以供再次重用,类似于数据库连接池。

您无法预测将创建多少个 HttpApplication 实例,基本上 ASP.NET 工作进程将创建尽可能多的实例,以满足访问您的 Web 应用程序的 HTTP 请求的需求。您的 Application_Init() 被调用两次,因为正在创建 2 个 HttpApplication 实例,即使只是您在运行您的网站。可能是您在被拉入的 HTML 中引用了其他服务器端资源(JavaScript 文件、CSS 等),或者可能是 Ajax 请求。

如果您想保证代码只运行一次,请将其放入 Global.asax 中的 Application_Start() 方法中。或者使用引导程序 http://www.dominicpettifer.co.uk/Blog/42/put-an-ioc-powered-bootstrapper-in-your-asp-net-mvc-application

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么在 VS2008/Casini 中启动调试时 Application_Init 会触发两次? 的相关文章

随机推荐

  • 使用 C++11 在编译时组合两个字符串的最简单方法

    我正在尝试连接两个编译时字符串 constexpr const char getString1 return abababa constexpr const char getString2 return lalalal constexpr
  • 按第一个字符分组

    我在 Oracle SQL 中的查询遇到问题 我有一个first name列中的employees桌子 我想根据中的第一个字符对记录进行分组first name 例如 我有 26 条记录 其中一条记录name Alice 一与name Bo
  • Angular2 - *ngIf 路线是某个参数

    我有一条路线 main item id 看起来像 http localhost 5000 main item JJHkhfghsiu45ve 在我的 html 中 我希望能够使用 ngIf 来显示这是否是路线 我不想为此使用路由器插座 我遇
  • 自制序列化与 Java 序列化

    我有一个需要持久保存在数据库上的 POJO 当前设计将其字段指定为单个字符串列 并且无法向表中添加其他字段 这意味着 对象需要以某种方式序列化 因此 对于基本实现 我设计了自己的对象序列化形式 这意味着将其所有字段连接到一个漂亮的字符串中
  • pod 安装后 Xcode 8 swift pod 标头为空

    我正在尝试编译一个用 swift 编写的现有 xcode 项目 该项目使用 Alamofire 我安装了 xcode 8 beta 并打开了项目 Alamofire 有很多错误 我了解到需要更新到版本 3 2 1 我编辑了 Podfile
  • PHP SoapClient 无法处理消息,因为内容类型为“text/xml;”

    我无法连接到网络服务并发送 接收数据 Error HTTP 无法处理消息 因为内容类型为 text xml charset utf 8 不是预期的类型 application soap xml 字符集 utf 8 Code paramete
  • 从 wikidata 网站获取搜索结果,但不从 API 获取

    我正在尝试 wikidata API 但在搜索查询 Jas 39 C Gripen 时遇到一些问题 它会在 wikidata 网站上返回结果 但如果我使用 API 则不会 在 wikidata 网站上 我得到了两个查询的搜索结果 使用API
  • char 的 std::cin 导致无限循环

    我在 switch 之前的 cin 之后使用了 cout 语句来确定我对第二个数字和字符操作有问题 并且由于某种原因我进入了无限循环 我有一种感觉 我在语法上犯了一个小错误 但我不知道它是什么 include
  • 简单的带宽/延迟测试来评估用户体验

    我编写基于网络的应用程序 性能显然是一个关键因素 虽然数据库加载和页面渲染时间是我可以控制的 但用户的互联网连接却无法控制 我正在寻找的是一种指示用户拥有何种类型的连接的方法 类似于网站角落里的红绿灯 向用户显示他们与网站的连接类型 从而表
  • FancyBox 调整宽度

    我可以使用以下命令调整高度 fancybox resize 部分 但宽度不会根据新内容更新 想法 来自fancybox API 文档 http fancybox net api fancybox resize 自动调整 FancyBox 的
  • 从 http.get() 加载的 JSON 数据在我的 Angular 2 模板中未定义

    我正在尝试读取本地 json 文件并将其解析为我制作的具有相同属性的类 当我尝试从类中读取时 它给出错误 指出该类为 null 或未定义 我有一个文件hall ts看起来像这样 import Item from item item expo
  • 如何在不安装material-ui的情况下安装Material-UI Docs?

    目前要在本地安装和运行 Material ui 文档 需要两个npm install 一个在material ui 中 另一个在material ui docs 中 cd
  • 将arm_compute::Image 转换为cv::Mat

    我有很多基于 open cv 的代码 但是 Arm 计算库可以通过多种方式提高性能 因此我想将一些 arm 计算库代码集成到我的项目中 有没有人尝试过在两个相应的图像结构之间进行转换 如果是这样 你做了什么 或者有没有一种方法可以共享指向底
  • 如何在Spring DataSourceTransactionManager管理的每个事务中执行自定义sql代码?

    考虑一下这样的情况 我们有大量由 Spring 管理的 java DAO 类 这些 bean 中定义的每个方法都在 Spring 的数据源事务中执行 SQL 代码 由方法上的注释定义 现在我们需要在上述方法的目标执行之前运行一些自定义代码
  • Python将一个变量内的多个列表合并到一个列表中[重复]

    这个问题在这里已经有答案了 我很难将多个列表放入一个列表中 因为它们都在一个变量内 这是一个例子 我拥有的 a 1 3 3 我想要的是 a 1 3 3 如何使用 Python 3 x 解决这个问题 EDIT 这是我正在处理的代码 from
  • 如何退格或删除?

    在 Windows 10 中 当我通过 Windows 上的 Kitematic 中的容器启动 MS PowerShell 进行 ssh 时 我注意到我无法退格或删除 而是得到 H 表示退格 而不是实际删除前一个字符 我错过了什么吗 接受的
  • (键,值)对结构的内存分配,并从注册表中读取

    我想制作一个程序 它从 Windows 注册表中收集一些信息 然后将其保存到文件中 但是我在收集信息时遇到了问题 我想将数组存储在结构中 我的问题是在初始化结构后指定数组的大小 typedef struct RESULTSKEY char
  • 什么时候需要浅拷贝(而不是深拷贝)?

    有人可以举一个需要浅拷贝的情况的例子吗 请注意 在某些情况下 浅复制和深复制是相同的 当对象对其任何子变量没有所有权时 就会发生这种情况 也就是说 所有子变量都是聚合的 http en wikipedia org wiki Object c
  • 级联的反向等效项是什么?

    我正在编写一个小型音乐数据库 我学习 SQL 已经有很长一段时间了 我一直想尝试一下 Django 但有一件事我无法理解 现在 我的模型仅包含两个类 Album and Song Song有一个外键指向它所属的相册 现在如果我删除它Albu
  • 为什么在 VS2008/Casini 中启动调试时 Application_Init 会触发两次?

    为什么在 VS2008 Casini 中启动调试时 Application Init 会触发两次 是的 它发生在 global asax 中 虽然看起来相当随机 但只偶尔发生一次 我假设您引用的是 ASP NET MVC 应用程序中的 Gl