사용 로봇 시뮬레이터 : RootLuisDialog에서컨텍스트 포스트 비동기 예외
await Conversation.SendAsync(activity,() => new RootLuisDialog());
:
{:이 예외를 만드는
[LuisIntent("")] [LuisIntent("None")] public async Task None(IDialogContext context, LuisResult result) { string message = $"Sorry, I did not understand '{result.Query}'. Type 'help' if you need assistance."; await context.PostAsync(message); context.Wait(this.MessageReceived); }
는 MessagesController이 코드를 가지고 "Assem에 'Microsoft.Bot.Connector.Activity'를 입력하십시오. BLY 'Microsoft.Bot.Connector는, 버전 = 3.0.0.0이, 문화 = 중립, 이 PublicKeyToken = 31bf3856ad364e35'로 직렬화 표시되지 않은 "} 데이터 :. {System.Collections.ListDictionaryInternal} HRESULT : -2146233076 헬프 : null InnerException : null 메시지 : "Microsoft.Bot.Connector.Activity 'Microsoft.Bot.Connector, 버전 = 3.0.0.0, 문화 = 중립, PublicKeyToken = 31bf3856ad364e35'이 (가) 직렬화 가능으로 표시되어 있지 않습니다." 출처 : "mscorlib에" 스택 트레이스 : "System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers (RuntimeType이 형)에서 \ 연구 \ n System.Runtime.Serialization.FormatterServices.GetSerializableMembers (유형 유형, StreamingContext 컨텍스트) \에서 R \ n 에서 System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() \ R \ n System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize (개체 OBJ에서 , ISurrogateSelector surrogateSelector, StreamingContext 콘텍스트 SerObjectInfoInit serObjectInfoInit, IFormatterConverter 변환기, ObjectWriter objectWriter, SerializationBinder binder) \ r \ n에 있습니다.System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write (WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo) \ r \ n at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize (Object 그래프, 헤더 [] inHeaders, __BinaryWriter serWriter 부울 fcheck가) \ R \ n System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize (트림 serializationStream 오브젝트 그래프 헤더 [] 헤더 부울 fcheck가)에서 \ R \ n에서 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize (스트림 serializationStream, 개체 그래프) \ 012 \ 에서 Microsoft.Bot.Builder.Internals.Fibers.FormatterStore
1.Microsoft.Bot.Builder.Internals.Fibers.IStore<T>.Save(T item)\r\n at Microsoft.Bot.Builder.Internals.Fibers.ErrorResilientStore
1.Micro soft.Bot.Builder.Internals.Fibers.IStore.Save (T 항목) \ 012 \ 에 Microsoft.Bot.Builder.Internals.Fibers.FactoryStore1.Microsoft.Bot.Builder.Internals.Fibers.IStore<T>.Save(T item)\r\n at Microsoft.Bot.Builder.Dialogs.Internals.DialogTask.<Microsoft-Bot-Builder-Dialogs-Internals-IPostToBot-PostAsync>d__21
1.MoveNext() \ r \ n --- 끝 (예외 작업) \ System \ Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (작업 (작업 )에서 작업)에서 예외가 throw 된 이전 위치의 스택 추적을--- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess에서 \ r \ n 작업) \ r \ n Microsoft.Bot.Builder.Dialogs.Internals.ReactiveDial ogTask. d__51.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.Bot.Builder.Dialogs.Internals.LocalizedDialogTask.<Microsoft-Bot-Builder-Dialogs-Internals-IPostToBot-PostAsync>d__2
1.MoveNext() \ 연구 \ 없음 --- 예외가 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (작업 작업)에 --- \ 연구 \ n을 던져 된 이전 위치에서 스택 추적의 끝 \ r \ n에서 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (작업 작업) \ 012 \ 에서 Microsoft.Bot.Builder.Dialogs.내부 .ScoringDialogTask1.<Microsoft-Bot-Builder-Dialogs-Internals-IPostToBot-PostAsync>d__6
1.MoveNext() \ r \ n --- 예외가 발생한 이전 위치의 스택 추적 끝 --- System.Runtime.Co mp \) \ 연구 \ n System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification에서 (작업 작업) \ 연구 \ n Microsoft.Bot.Builder.Dialogs.Internals.PersistentDialogTask.d__61.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at Microsoft.Bot.Builder.Dialogs.Internals.PersistentDialogTask.<Microsoft-Bot-Builder-Dialogs-Internals-IPostToBot-PostAsync>d__6
1.MoveNext()에서 \ 연구 \ 없음 --- 예외가 발생한 이전 위치에서 스택 추적 끝 --- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (작업 작업) \ 012 \ System.Runtime.CompilerServices에서 \ r \ n. TaskAwaiter.HandleNonSuccessAndDebuggerNotification (작업) (예외가 throw 된 이전 위치의 스택 추적 끝 --- \ r \ n) System.Runtime.CompilerServices.TaskAwaiter.NonSuccess (작업 작업)에서 실행하십시오. 에서 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (작업 작업) \ 012 \ 에서 Microsoft.Bot.Builder.Dialogs. Conversation.d__2.MoveNext() \ r \ n --- 예외가 발생한 이전 위치의 스택 추적 끝 --- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (작업 작업)에서 \ r \ n \ r \ n에서 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (작업 태스크) \ R \ n System.Runtime.CompilerServices.TaskAwaiter.GetResult (AT) \ R \ n C에서 MessengerBot.MessagesController.d__1.MoveNext()에서 : \ MyApp를 MessagesController.cs \ : 라인 (60) " TargetSite : {System.Reflection.MemberInfo [] InternalGetSerializableMembers (System.RuntimeType)} 내가 여기에 예외가 ... 도움이 무엇인지 이해하는 것이 꽤 확실하지 않다
?
편집 : 매개 변수 - 활동으로 rootluisdialog에 대한 새로운 생성자로 문제를 해결했습니다.
Conversation.SendAsync (activity,() => new RootLuisDialog (activity)); 다음 RootLuisDialog에 난이 있습니다
Activity activity;
public RootLuisDialog(Activity activity)
{
this.activity = activity;
}
문제가 이미 해결 된 경우 질문을 삭제하십시오. –
적용중인 솔루션이 올바른 것으로 들리지만 –
예. 그렇지 않습니다. 어떤 생각? – activ8