ena*_*rik 15 signalr asp.net-web-api owin katana
如果我使用像OwinMiddleware和IOwinContext这样的Microsoft.Owin类型构建OWIN中间件,我的中间件是否可以与非Microsoft Owin主机/服务器一起使用?我正在研究Nancy和SignalR的中间件类,它们看起来与OwinMiddleware基类非常不同,中间件就像Cookie认证中间件和WebApi一样.我正在阅读规范,但我仍然不清楚非Microsoft Owin服务器是否可以使用OwinMiddleware和IOwinContext类型而不依赖于Microsoft.Owin(我猜这会破坏Owin的目的).
dav*_*owl 18
如果使用OwinMiddleware基类型构建中间件,则默认情况下它不适用于非Microsoft Owin服务器.但它可以与非Microsoft服务器一起使用(SignalR与Nowin一起工作正常).
IAppBuilder的默认实现(https://github.com/owin/owin-hosting/blob/master/src/main/Owin.Builder/AppBuilder.cs)内置了签名转换功能.这允许任何人注册转换自T - > AppFunc和AppFunc - > T.这意味着您可以在同一管道中混合使用不同签名的中间件.(有关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服务器,那么您也可以免费获得转换(请参阅nowin自述文件以获取示例https://github.com/ Bobris/Nowin/blob/master/README.md).
希望这可以帮助.
归档时间: |
|
查看次数: |
2708 次 |
最近记录: |