Asp.net web api OWIN中间件使用的实例 我把我自己看成是一个初级的欧文,在阅读了大量的文献之后,我才开始对矛盾的概念感到困惑。我知道这是多个问题,但我觉得回答这些问题将消除关于OWIN以及如何最好地使用它的最根本的疑问。以下是我的问题: 我可以使用OWIN中间件做什么,而我还不能使用它呢 消息处理程序还是HTTP模块?还是两者都是一样的 除了后两者与IIS紧密耦合之外 很多文档都说OWIN允许在 web服务器和web应用程序,即删除对IIS的依赖关系 用于托管Web API应用程序。但我还没有看到一个 使用OWIN和was的某些web应用程序或web api的示例 已成功从承载在IIS和其他某些web服务器上进行移植 服务器。那么IIS和自托管是实现这一目标的唯一途径吗 web服务器和web应用程序之间的解耦 当我搜索OWIN中间件示例时,只得到了Katana和 Helios是OWIN规范仅有的两个实现。 卡塔纳几乎完成了,并且不会超越修正3,而赫利俄斯还没有得到修正3的支持 微软根据一些文章。那么OWIN的未来是什么呢 那个案子 到目前为止,我所看到的唯一详细的实际用法是 使用OAuth 2使用OWIN进行身份验证。任何其他此类用法 在中间保持OWIN实现? 在我的startup类的配置方法中,我尝试将简单 中间件代码片段如下所示,并且能够看到请求 送交:-

Asp.net web api OWIN中间件使用的实例 我把我自己看成是一个初级的欧文,在阅读了大量的文献之后,我才开始对矛盾的概念感到困惑。我知道这是多个问题,但我觉得回答这些问题将消除关于OWIN以及如何最好地使用它的最根本的疑问。以下是我的问题: 我可以使用OWIN中间件做什么,而我还不能使用它呢 消息处理程序还是HTTP模块?还是两者都是一样的 除了后两者与IIS紧密耦合之外 很多文档都说OWIN允许在 web服务器和web应用程序,即删除对IIS的依赖关系 用于托管Web API应用程序。但我还没有看到一个 使用OWIN和was的某些web应用程序或web api的示例 已成功从承载在IIS和其他某些web服务器上进行移植 服务器。那么IIS和自托管是实现这一目标的唯一途径吗 web服务器和web应用程序之间的解耦 当我搜索OWIN中间件示例时,只得到了Katana和 Helios是OWIN规范仅有的两个实现。 卡塔纳几乎完成了,并且不会超越修正3,而赫利俄斯还没有得到修正3的支持 微软根据一些文章。那么OWIN的未来是什么呢 那个案子 到目前为止,我所看到的唯一详细的实际用法是 使用OAuth 2使用OWIN进行身份验证。任何其他此类用法 在中间保持OWIN实现? 在我的startup类的配置方法中,我尝试将简单 中间件代码片段如下所示,并且能够看到请求 送交:-,asp.net-web-api,owin,katana,Asp.net Web Api,Owin,Katana,但是有错误: 我如何看到请求进入并为中间件中的下一个组件修改它 您插入的各种中间件是什么 在web服务器和应用程序之间的项目中 感谢您回答以上任何或所有问题 我可以使用OWIN中间件做什么,而我不能使用消息处理程序或HTTP模块来做什么?或者,除了后两者与IIS紧密耦合之外,它们是否都是相同的东西 与IIS解耦是其中的一部分。OWIN中间件是一个管道,允许某些“OWIN感知”的东西参与请求(如果他们选择的话)。伊特芬德勒的把手只有一件事——它们不能用链子锁住。我更喜欢将管道与Global.as

但是有错误:

我如何看到请求进入并为中间件中的下一个组件修改它

  • 您插入的各种中间件是什么 在web服务器和应用程序之间的项目中
  • 感谢您回答以上任何或所有问题

    我可以使用OWIN中间件做什么,而我不能使用消息处理程序或HTTP模块来做什么?或者,除了后两者与IIS紧密耦合之外,它们是否都是相同的东西

    与IIS解耦是其中的一部分。OWIN中间件是一个管道,允许某些“OWIN感知”的东西参与请求(如果他们选择的话)。伊特芬德勒的把手只有一件事——它们不能用链子锁住。我更喜欢将管道与Global.asax进行比较。我见过很多填充的Global.asax处理程序执行各种操作,如身份验证、授权、吐出HTTP头(如P3P策略、X-Frame-Options等)。其中的部分问题是开发可重用组件非常困难,而且依赖IIS。OWIN试图消除这些问题

    很多文档都说OWIN允许在web服务器和web应用程序之间进行解耦,即消除托管web API应用程序时对IIS的依赖。但我还没有看到一些web应用程序或web api的示例,这些应用程序或web api使用OWIN,并成功地从IIS和其他web服务器上进行了移植。那么,IIS和自托管是实现web服务器和web应用之间解耦的唯一途径吗

    WebAPI 2和SignalR 2也是如此。MVC5及以上版本目前还不能真正与IIS分离。MVC6将解决这个问题,是一个相当大的革新。ASP.NET网站在控制台应用程序上具有on Signal自托管功能。在本教程中,您将看到一个
    启动
    类,就像它在IIS或IIS Express上运行一样。Console应用程序唯一不同的地方是,它在
    Main
    方法中使用HttpListener引导服务器

    [评论]关于上述第2点,这里的owin组件是什么?Katana是owin组件还是我们使用Katana编写的代码,或者两者结合在一起

    OWIN实际上只是web应用程序和web服务器之间的一个抽象层,一个规范。OWIN有不同的“实现”,具体取决于您希望在哪个服务器上运行—Katana是一个运行WebAPI 2和SignalR 2的OWIN实现。Kestrel是OWIN实现的另一个示例

    当我搜索OWIN中间件示例时,我只得到了Katana和Helios,这是OWIN规范仅有的两个实现。Katana几乎完成了,并且不会超出修订3,根据一些文章,Helios还不受Microsoft支持。那么,在这种情况下,OWIN的未来是什么

    这仍然有点悬而未决,但OWIN正被用于开发Kestrel web服务器,该服务器允许ASP.NET 5 Core在Linux/OS X上运行

    到目前为止,我所看到的唯一详细的实际用法是使用OWIN进行身份验证,使用OAuth 2。在中间保持OWin实现的任何其他用法?

    SignalR和WebAPI也使用OWIN。这非常有用,这样您就可以将信号集线器作为Windows服务运行,Web API也是如此

    是否在中间保持OWin实现的其他用法?

    平台独立性。在中间有OWIN意味着我可以在我的Mac上从我的IIS到KestRead上拷贝我的MVC 6核心Web应用程序,而OWin实现则负责其余部分。 在我的startup类的配置方法中,我尝试如下链接简单的中间件代码片段,以便能够看到发送的请求

    context.Request
    在OWIN中没有索引器。改用
    Get

    app.Use(异步(上下文,下一步)=>
    {
    context.Response.Write(“HelloWorld2:+context.Request.Get”(“owin.RequestBody”);
    等待下一个();
    });
    
    请注意,
    owin.RequestBody
    是一个实现细节,实际返回类型是内部的。我不确定您试图获取什么,如果您想要查询字符串,请从请求中使用
    query
    ,或者如果需要,使用
    Headers