asp.net – 在MVC5应用程序中使用OWIN软件包的好处
我正在努力了解OWIN和Katana ..可以肯定的是,应用程序可以是自托管的,也可以在Nancy或非IIS上托管.这个问题的原因是我们想使用MVC5(VS 2013)创建一个Web应用程序,该应用程序将在
Windows Azure中的IIS上托管.
但是,我们收到了在mvc5应用程序中使用OWIN中间件组件/包的建议,以获得可插拔架构,性能等的优点. 如果我们在Windows Azure中的IIS上托管的MVC5应用程序中使用OWIN中间件,我想了解如何获得性能提升.我的应用程序会使用owin中间件软件包在IIS管道中跳过许多不必要的事情吗?在IIS上托管的时候,使用OWIN在MVC5中有什么其他好处吗? 解决方法
是的,您可能会跳过很多不必要的事情,因为您将在管道中定义组件,以及使用您的应用程序将使用的不一定由您制定的其他组件.这些组件是中间件,因为它们位于处理流水线的中间,组件可以决定通过async / await C#语法将控制权传递给流水线中的下一个组件,或者结束该组件的处理.
AppGroup对象是Katana发生“魔术”的地方,因为它是调用组件使用的逻辑,签名是这样的: Func<IDictionary<string,object>,Task>;
组件的一个例子将是一个匹配AppFunc的签名的方法(它是Func< IDictionary< string,Task>,像这样: public async Task Invoke(IDictionary<string,object> environment) { // Do processing... // Wait for next component to complete await _nextComponent(environment); // Do more processing... }
那么你怎么知道下一个组件是什么呢? 您的组件的构造函数需要接受Func< IDictionary< string,Task>的参数,如下所示: public class HelloWorldCOmponent { Func<IDictionary<string,Task> _next; public HelloWorldComponent(Func<IDictionary<string,Task> next) { _next = next; } public async Task Invoke(IDictionary<string,object> environment) { // Do something // Wait for next component to return await _next(environment); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 我们可以在ASP.NET Webforms(* .aspx页面)中使用Razor语法吗
- MSTest与Ninject,MVC3和WCF
- asp.net-mvc – 如何在MVC Unobtrusive Validation中验证Da
- asp.net-mvc – SQL CE 4.0还是SQL Express?果园对吗?
- asp.net-ajax – Sys.Application.add_load()vs. $(documen
- asp.net-mvc – 特定便携式区域的ControllerFactory
- ASP.NET的Visual Studio 2008性能分析器问题
- asp.net-mvc – 我可以在实际项目中使用Telerik ASP.NET MV
- asp.net-mvc-3 – 列模板kendo ui grid mvc动作链接
- asp.net – 抽象通用ODataController类导致“没有找到HTTP资