signalr – Microsoft.Owin类似OwinMiddleware和IOwinContext与其他Owin服务器不兼容?

前端之家收集整理的这篇文章主要介绍了signalr – Microsoft.Owin类似OwinMiddleware和IOwinContext与其他Owin服务器不兼容?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我使用Microsoft.Owin类型(如OwinMiddleware和IOwinContext)构建OWIN中间件,我的中间件是否可以与非Microsoft Owin主机/服务器配合工作?我正在查看 NancySignalR的中间件类,他们看起来与 OwinMiddleware基础类似,就像Cookie认证中间件和 WebApi所基于的基础类似.我正在阅读规范,但如果非Microsoft Owin服务器可以使用OwinMiddleware和IOwinContext类型,而不依赖Microsoft.Owin(我猜想会击败Owin的目的),我仍然不清楚.
如果您使用OwinMiddleware基本类型构建中间件,则默认情况下,它不会与非Microsoft Owin服务器配合使用.但是可以使用非Microsoft服务器(SignalR以Nowin为例).

IAppBuilder(https://github.com/owin/owin-hosting/blob/master/src/main/Owin.Builder/AppBuilder.cs)的默认实现具有内置的签名转换功能.这允许任何人注册从T – >的转换. AppFunc和AppFunc – >这意味着您可以在同一管道中混合和匹配中间件与不同的签名. (有关OwinMiddleware的工作原理,请参阅https://katanaproject.codeplex.com/SourceControl/latest#src/Microsoft.Owin/Infrastructure/SignatureConversions.cs).只要这种转换存在,您可以使“原始”中间件(如nancy)无缝地与OwinMiddleware一起工作.看看这是如何工作的:

https://github.com/owin/owin-hosting/blob/master/src/main/Owin.Builder/AppBuilder.cs#L182(现在你的大脑爆炸了……)

在SignalR的情况下,我们自动为您添加转换(https://github.com/SignalR/SignalR/blob/dev/src/Microsoft.AspNet.SignalR.Core/Owin/OwinExtensions.cs#L168),但可以在任何依赖于OwinMiddleware的代码中完成,以确保转换工作.

如果您使用任何Microsoft.Owin.Hosting来引导您的应用程序,但是使用非Microsoft Web服务器,那么您将免费获得转换(参见现在的自述文件中的例子https://github.com/Bobris/Nowin/blob/master/README.md).

希望这可以帮助.

猜你在找的Windows相关文章