[英]Do Adapters limit the Middleware pipeline count to only allow 2 IMiddleware to be used with Use()?
通过测试BotBuilder Samples ,我试图扩展其中一个示例以在管道中使用多个中间件类。 我发现 BotAdapter 仅使用添加的前 2 个 IMiddleware 类。 即使我尝试了 BotAdapter 的MiddlewareSet.Use()方法,它仍然仅限于添加的第 2 个拳头。 IMiddleware 的文档没有 state 关于管道仅限于添加的前 2 个的任何内容。 有谁知道这件事以及如何超越这 2 个限制?
我们不能使用技能,因为我们希望避免在我们的组织中注册数十到数百个应用程序。 任何帮助表示赞赏。
伪代码示例显示调用多个 Use() 方法将限制为 2 的位置:
public AdapterWithErrorHandler(IConfiguration configuration, ILogger<BotFrameworkHttpAdapter> logger, ConversationState conversationState, SkillHttpClient skillClient = null, SkillsConfiguration skillsConfig = null)
: base(configuration, logger)
{
...
Use(new LoggerMiddleware1(logger));
Use(new LoggerMiddleware2(logger));
Use(new LoggerMiddleware3(logger)); // <--- Never gets invoked!!!
...
}
问题是其中一个中间件没有调用next
导致管道中的下一个中间件没有被调用。 感谢评论者的帮助。
await next(cancellationToken).ConfigureAwait(false);
需要在OnTurnAsync
处理程序中调用此行以触发链中的下一个中间件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.