You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ConnectorClient调用CreateDirectConversationAsync报MethodNotAllowed异常求助

解决ConnectorClient调用CreateDirectConversationAsync抛出MethodNotAllowed异常的问题

你遇到的问题是因为ConnectorClient并不适用于创建Direct Line对话,它主要用于Bot Framework与各消息通道的交互,而Direct Line有专属的API和SDK规范,直接调用CreateDirectConversationAsync会因接口不匹配触发MethodNotAllowed异常。

你的代码示例:

var connector = new ConnectorClient(new Uri(serviceUrl), new MicrosoftAppCredentials(microsoftAppId, microsoftAppPassword));

await connector.Conversations.CreateDirectConversationAsync(activity.From, activity.Recipient, activity);

正确解决方案:使用Direct Line SDK创建对话

1. 安装Direct Line NuGet包

Install-Package Microsoft.Bot.Connector.DirectLine

2. 用DirectLineClient实现对话创建与消息发送

using Microsoft.Bot.Connector.DirectLine;

// 初始化DirectLineClient,传入你的Direct Line密钥
var directLineClient = new DirectLineClient("你的DirectLine密钥");

// 启动新对话
var conversation = await directLineClient.Conversations.StartConversationAsync();

// 构造并发送初始消息(对应原代码中的activity)
var initialMessage = new Activity
{
    From = new ChannelAccount(id: activity.From.Id, name: activity.From.Name),
    Text = activity.Text,
    Type = ActivityTypes.Message
};

await directLineClient.Conversations.PostActivityAsync(conversation.ConversationId, initialMessage);

关键注意点

  • 必须使用Direct Line密钥,而非Bot的Microsoft App ID和密码,该密钥可在Azure门户Bot资源的Direct Line频道设置中获取。
  • 若误用了Bot Framework的服务端点作为serviceUrl,也会引发此类错误,Direct Line的正确服务地址为https://directline.botframework.com/v3/directline。

内容的提问来源于stack exchange,提问作者Davido

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 12:33:07