asp.net - Microsoft.Owin.Host.SystemWeb 和 Microsoft.Owin.Host.IIS 有什么区别

标签 asp.net .net iis

据我所知Microsoft.Owin.Host.SystemWeb允许我在 IIS 上运行 OWIN 应用程序,但今天我发现了另一个名为 Microsoft.Owin.Host.IIS 的包(据我从其名称中了解到)具有类似的目的。

实际上我认为我错了,软件包有很大不同。

所以,这里有问题:

  • 这两个软件包有什么区别?
  • 在什么情况下我应该使用其中之一?
  • 最后(可选):有人可以给我一个链接,以便更好地解释所有 ASP.NET 5 的困惑吗? (微软创建新平台/框架/功能的速度比记录它们的速度快,所以我现在感觉很迷失方向......)

最佳答案

回答您的可选问题:

System.Web 的问题就是它太臃肿并且与 IIS 耦合在一起。例如,您无法在控制台窗口中托管 MVC 网站。您被迫在 IIS 中运行它。 OWIN 计划试图通过添加抽象来模块化和解耦 Web 堆栈。

本质上,整个 Web Stack 被简化为中间件组件的管道(类似于 Node.js 的工作方式)。中间件组件或 AppFunc ( Func<IDictionary<string, object>,Task> ) 是一个函数,它接受上下文(包含请求、响应和其他内容...)并用它执行某些操作(请求解析、路由、渲染 View 、记录内容等)。然后,整个堆栈变成一系列中间件组件:每个组件都调用链中的下一个组件,或者通过不调用下一个组件来中断执行。

ASP.NET 5 是一种自然演变,因为它基于 OWIN 构建,因此支持模块化并消除了对 System.Web(和 IIS)的依赖。现在一切都可以选择加入,您甚至可以跨平台运行应用程序(使用 .NET Core)。如果没有 OWIN,这一切都是不可能的。

关于asp.net - Microsoft.Owin.Host.SystemWeb 和 Microsoft.Owin.Host.IIS 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33365352/

相关文章:

asp.net - IIS 10 站点绑定(bind)通配符开发机

C#如何: define a long string with linebreaks?

c# - ASP.NET:如何使用命令行在文件夹中发布

C# 静音/取消静音特定窗口?

.net - 获取对象的DataContext

iis - 在 IIS 10 (Windows 10) 中无法看到 "Management Service"

wcf - IIS 托管的 WCF 休息服务出现 400 错误,URL 是否太长?

c# - 在 ASP.NET 中从 URL 获取文本

javascript - 如何在不使用 .aspx 页面的情况下在 JavaScript 中访问 web.config key ?

c# - 将 DataTable 导出到 Excel 文件显示 ?关于数学符号