![](/img/trans.png)
[英]How to transform Function Application settings of Azure Function App .NET core 2.0 in DevOps Pipeline?
[英]How to integrate existing OwinMiddleware into a .Net Core 2.0 app pipeline?
我有一些現有的 Owin 中間件類,最初是為 .Net 4.6 應用程序編寫的,它們遵循以下模式:
public class MyMiddleware : OwinMiddleware
{
public MyMiddleware(OwinMiddleware next) : base(next)
{ }
public override async Task Invoke(IOwinContext context)
{
// do stuff
await Next.Invoke(context)
}
}
我正在編寫一個新的 .Net Core 2.0 應用程序,我想在其中使用這些中間件(以及一些不基於 Owin 的“新型”中間件)。 我很難找到好的文檔或執行此操作的示例,至少是與我所擁有的類似的文檔或示例(例如, this )
我發現的一件有希望的事情是Microsoft.AspNetCore.Owin
包包含一個擴展方法UseOwin()
,這似乎是前進的道路,但我無法破譯如何使用它來調用我的“遺留”中間件以上。 我意識到我應該在配置IApplicationBuilder
時使用UseOwin()
但我不夠聰明,無法從我在線閱讀的內容中獲取詳細信息。
做到這一點最直接的方法是什么?
似乎最直接的方法是通過UseOwin
擴展方法。
我能夠讓它工作:
public class MyTestMiddleware : OwinMiddleware
{
public MyTestMiddleware(OwinMiddleware next) : base(next) {}
public override async Task Invoke(IOwinContext context)
{
System.Diagnostics.Debug.WriteLine("INVOKED");
await Next.Invoke(context);
}
}
app.UseOwin(setup => setup(next =>
{
var owinAppBuilder = new AppBuilder();
// set the DefaultApp to be next so that the ASP.NET Core pipeline runs
owinAppBuilder.Properties["builder.DefaultApp"] = next;
// add your middlewares here as Types
owinAppBuilder.Use(typeof(MyTestMiddleware));
return owinAppBuilder.Build<Func<IDictionary<string, object>, Task>>();
}));
請注意,Microsoft 似乎對OwinMiddleware
類進行了OwinMiddleware
推動,因為這感覺很hacky。
我有同樣的情況,但是我正在使用.net core 2.1應用程序。 我的解決方案無法識別OwinMiddleware類。 除了Microsoft.AspNetCore.Owin,您是否添加了其他任何內容? 您是如何獲得應用程序以加載程序集的?
謝謝!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.