我正在阅读http://owin.org/spec/owin-1.0.0.html上的OWIN 1.0规范,只是无法理解它的工作原理。我已经下载了片假名(Katana)源码,但是它很大,并且没有任何帮助。我熟悉仅具有接口的项目/程序集的某种标准方式,该方式允许在不直接注册的情况下集成两个项目。但是我不明白仅使用Func 和Action 定义,Web服务器将如何调用Web应用程序。 (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 OWIN归结为两件事:1)“环境”词典2)处理请求并发送响应的方法。对于#1,这只是一个属性包,可让您访问请求标头,请求流,响应标头,响应流和服务器数据。可以将其视为ASP.NET的HttpContext或System.Net.HttpListener的HttpListenerContext。实际上,在最新版本的Katana(https://katanaproject.codeplex.com/,这是ASP.NET团队的开源实现)中,已经进行了改进(更多内容),以简化为更易于使用的对象模型,包括OwinRequest,OwinResponse和IOwinContext。对于#2,这通常称为“ AppFunc”,其签名为:using AppFunc = Func<IDictionary<string, object>, Task>;此签名用于请求处理程序管道中的“中间件”,也可以是生成HTML的最终应用程序,WebAPI等。在Katana中,有一个您可以从其继承的类来简化此签名以使用我前面提到的IOwinContext。看看OwinMiddlware您还可以阅读这篇文章,其中概述了Katana / OWIN的工作:http://www.asp.net/aspnet/overview/owin-and-katana/an-overview-of-project-katana (adsbygoogle = window.adsbygoogle || []).push({}); 09-29 23:08