简体   繁体   English

Microsoft BOT 框架 BOT 间歇性地停止工作

[英]Microsoft BOT Framework BOT is stopped working intermittently

I am facing intermittent issue in BOT.我在 BOT 中遇到间歇性问题。

I have two bots which are written using c# and BOT Framework V4 and both are same and are hosted on IIS.我有两个使用 c# 和 BOT Framework V4 编写的机器人,它们都是相同的并且托管在 IIS 上。

Also i have hosted two WebChat Node.js applications and both are same.此外,我还托管了两个 WebChat Node.js 应用程序,它们都是相同的。

I have two different Azure registration for two bots.我有两个机器人的两个不同 Azure 注册。

One bot is constantly throwing issue and it stops working intermittently.一个机器人不断抛出问题,它间歇性地停止工作。 Then we have to recycle its application pool to make it start again.然后我们必须回收它的应用程序池,让它重新启动。

Server : Windows Server 2012 R2 IIS : 8.5.9600服务器:Windows Server 2012 R2 IIS:8.5.9600

The error is given below,错误如下,

fail: EnterpriseTestBot.Startup[0]
      Exception Occured :-> The operation was canceled.-----   at System.Net.Http.ConnectHelper.EstablishSslConnectionAsyncCore(Stream stream, SslClientAuthenticationOptions sslOptions, CancellationToken cancellationToken)
         at System.Threading.Tasks.ValueTask`1.get_Result()
         at System.Net.Http.HttpConnectionPool.CreateConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
         at System.Threading.Tasks.ValueTask`1.get_Result()
         at System.Net.Http.HttpConnectionPool.WaitForCreatedConnectionAsync(ValueTask`1 creationTask)
         at System.Threading.Tasks.ValueTask`1.get_Result()
         at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
         at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
         at System.Net.Http.HttpClient.FinishSendAsyncBuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
         at Microsoft.Bot.Connector.Conversations.ReplyToActivityWithHttpMessagesAsync(String conversationId, String activityId, Activity activity, Dictionary`2 customHeaders, CancellationToken cancellationToken)
         at Microsoft.Bot.Connector.ConversationsExtensions.ReplyToActivityAsync(IConversations operations, String conversationId, String activityId, Activity activity, CancellationToken cancellationToken)
         at Microsoft.Bot.Builder.BotFrameworkAdapter.SendActivitiesAsync(ITurnContext turnContext, Activity[] activities, CancellationToken cancellationToken)
         at Microsoft.Bot.Builder.TurnContext.<>c__DisplayClass22_0.<<SendActivitiesAsync>g__SendActivitiesThroughAdapter|1>d.MoveNext()
      --- End of stack trace from previous location where exception was thrown ---
         at Microsoft.Bot.Builder.TurnContext.SendActivityAsync(IActivity activity, CancellationToken cancellationToken)
         at Microsoft.Bot.Builder.TemplateManager.TemplateManager.ReplyWith(ITurnContext turnContext, String templateId, Object data)
         at EnterpriseTestBot.Dialogs.Main.MainDialog.OnStartAsync(DialogContext dc, CancellationToken cancellationToken) in D:\Test\BOT\Enterprise_BOT\EnterpriseTestBot\Dialogs\Main\MainDialog.cs:line 101
         at EnterpriseTestBot.Dialogs.Shared.RouterDialog.OnContinueDialogAsync(DialogContext innerDc, CancellationToken cancellationToken) in D:\Test\BOT\Enterprise_BOT\EnterpriseTestBot\Dialogs\Shared\RouterDialog.cs:line 35
         at Microsoft.Bot.Builder.Dialogs.ComponentDialog.BeginDialogAsync(DialogContext outerDc, Object options, CancellationToken cancellationToken)
         at Microsoft.Bot.Builder.Dialogs.DialogContext.BeginDialogAsync(String dialogId, Object options, CancellationToken cancellationToken)
         at EnterpriseTestBot.EnterpriseTestBot.OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken) in D:\Test\BOT\Enterprise_BOT\EnterpriseTestBot\EnterpriseTestBot.cs:line 96
         at EnterpriseTestBot.Middleware.GetSetUserDataMiddleware.OnTurnAsync(ITurnContext turnContext, NextDelegate next, CancellationToken cancellationToken) in D:\Test\BOT\Enterprise_BOT\EnterpriseTestBot\Middleware\GetSetUserDataMiddleware.cs:line 98
         at Microsoft.Bot.Builder.AutoSaveStateMiddleware.OnTurnAsync(ITurnContext turnContext, NextDelegate next, CancellationToken cancellationToken)
         at EnterpriseTestBot.Middleware.SetLocaleMiddleware.OnTurnAsync(ITurnContext context, NextDelegate next, CancellationToken cancellationToken) in D:\Test\BOT\Enterprise_BOT\EnterpriseTestBot\Middleware\SetLocaleMiddleware.cs:line 49
         at Microsoft.Bot.Builder.MiddlewareSet.ReceiveActivityWithStatusAsync(ITurnContext turnContext, BotCallbackHandler callback, CancellationToken cancellationToken)
         at Microsoft.Bot.Builder.BotAdapter.RunPipelineAsync(ITurnContext turnContext, BotCallbackHandler callback, CancellationToken cancellationToken)-----System.IO.IOException: Unable to read data from the transport connection: The I/O operation has been aborted because of either a thread exit or an application request. ---> System.Net.Sockets.SocketException: The I/O operation has been aborted because of either a thread exit or an application request
         --- End of inner exception stack trace ---
         at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error)
         at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.GetResult(Int16 token)
         at System.Net.Http.HttpConnection.ReadBufferedAsyncCore(Memory`1 destination)
         at System.Net.Http.HttpConnection.RawConnectionStream.ReadAsync(Memory`1 buffer, CancellationToken cancellationToken)
         at System.Net.FixedSizeReader.ReadPacketAsync(Stream transport, AsyncProtocolRequest request)
         at System.Net.Security.SslState.ThrowIfExceptional()
         at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult)
         at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result)
         at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult)
         at System.Net.Security.SslStream.<>c.<AuthenticateAsClientAsync>b__47_1(IAsyncResult iar)
         at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
      --- End of stack trace from previous location where exception was thrown ---
         at System.Net.Http.ConnectHelper.EstablishSslConnectionAsyncCore(Stream stream, SslClientAuthenticationOptions sslOptions, CancellationToken cancellationToken)
info: Microsoft.Bot.Builder.Integration.IAdapterIntegration[0]
      Sending activity.  ReplyToId: 5Ly5VgcOJHH
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
      Request starting HTTP/1.1 POST http://TestBot.MyCompany.com/ATOM/api/messages application/json; charset=utf-8 377
info: Microsoft.Bot.Builder.Integration.IAdapterIntegration[0]
      Received an incoming activity.  ActivityId: 6WV3KIRaT3y
info: Microsoft.Bot.Builder.Integration.IAdapterIntegration[0]
      Sending activity.  ReplyToId: 6WV3KIRaT3y

这种特殊类型的问题需要在 GitHub ( https://github.com/microsoft/botbuilder-dotnet ) 上提出,因为它将特定于您的机器人。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM