【问题标题】:Http handler in asp.net coreasp.net 核心中的 Http 处理程序
【发布时间】:2018-10-25 16:07:34
【问题描述】:

现在我有 asp mvc 5 .net 框架项目和处理程序(具有自定义逻辑的 ashx 文件)来处理客户需求(即自定义格式的价目表)。

我打算转asp core,问题是:有没有相当于handler的? 互联网上的文章建议将逻辑放入中间件,但在我的情况下这是不方便的方式。

【问题讨论】:

  • 我有几点希望对您有所帮助。首先,将应用程序保留在 ASP.NET MVC 中并没有什么“错误”,它不会消失。第二点是,如果你真的需要迁移到 ASP.NET Core,你应该使用中间件代替处理程序,因为请求生命周期完全不同。中间件不是挂钩到管道中,而是成为管道的一部分。它消除了许多“魔力”和“在生命周期中将这一点挂钩到哪里是正确的地方?”的问题

标签: asp.net-core


【解决方案1】:

你能解释一下你需要什么中间件无法为你提供的吗?

中间件的构建方式可以让您完全从旧的 Http 处理程序/模块迁移到它们。

https://docs.microsoft.com/en-us/aspnet/core/migration/http-modules?view=aspnetcore-2.1

【讨论】:

  • 如果我需要添加新的处理程序,我不想更改程序集。在 mvc 5 中,如果我需要添加处理程序,我只需添加新文件并将逻辑放入其中
  • @LapenkovVladimir 所以你的意思是你想把你的 middleware 放在另一个 assembly 中并在你的应用程序中使用它?
  • 你说得对,因为这里的中间件更适合更轻量级
【解决方案2】:

在我的案例中,具有自己的逻辑和模型的 Razor 页面替代自定义处理程序的最佳方式

【讨论】:

    【解决方案3】:

    您可以使用中间件或拦截器来跟踪任何传入的请求。 它们之间最重要的区别是,您也可以在任何操作中使用拦截器 - 为此您应该使用依赖注入。

    【讨论】:

      猜你喜欢
      • 2020-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-05
      • 2011-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多