我需要在我的用户和我的机器人之间记录消息。经过一番调查后,我发现sGambolati在这篇文章中解释了如何实现:https://stackoverflow.com/a/42145416。无法使用IActivityLogger和C#的Bot生成器记录消息
但是,这种方法似乎并没有为我工作。我甚至尝试了他提供的相同片段,但仍然没有在调试输出窗口中看到日志。
Logger类:
public class DebugActivityLogger : IActivityLogger
{
public async Task LogAsync(IActivity activity)
{
Debug.WriteLine($"From:{activity.From.Id} - To:{activity.Recipient.Id} - Message:{activity.AsMessageActivity()?.Text}");
}
}
我的Global.asax:
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
GlobalConfiguration.Configure(WebApiConfig.Register);
var builder = new ContainerBuilder();
builder.RegisterType<DebugActivityLogger>()
.AsImplementedInterfaces()
.InstancePerDependency();
builder.Update(Conversation.Container);
}
}
标准回波样品中的控制器:
根据他的执行下面的代码
public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
if (activity.Type == ActivityTypes.Message)
{
ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));
int length = (activity.Text ?? string.Empty).Length;
Activity reply = activity.CreateReply($"You sent {activity.Text} which was {length} characters");
await connector.Conversations.ReplyToActivityAsync(reply);
}
var response = Request.CreateResponse(HttpStatusCode.OK);
return response;
}
我错过了什么吗?