【发布时间】:2021-09-06 12:18:17
【问题描述】:
我有一个机器人在部署到 Azure 时无法工作。由于我没有从控制台收集足够的信息,因此我对如何调试这个问题没有任何想法。
Bot 使用 Ngrok 运行良好。我正在使用单独的通道进行 Azure 部署,但配置似乎是正确的。
端点肯定会受到打击,因为我每次通过团队向机器人发送消息时都会看到 500 - 内部服务器错误。
Azure 门户“日志流”中的完整错误消息:
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>IIS Detailed Error - 500.0 - Internal Server Error</title> <style type="text/css"> </style> </head> <body> <div id="content"> <div class="content-container"> <h3>HTTP Error 500.0 - Internal Server Error</h3> <h4>The page cannot be displayed because an internal server error has occurred.</h4> </div> <div class="content-container"> <fieldset> <h4>Most likely causes:</h4> <ul> <li>IIS received the request; however, an internal error occurred during the processing of the request. The root cause of此错误取决于处理请求的模块以及处理请求的模块 发生此错误时在工作进程中发生。
IIS 无法访问网站或应用程序的 web.config 文件。如果 NTFS 权限设置不正确。 IIS 无法处理网站或应用程序的配置。 经过身份验证的用户没有使用此 DLL 的权限。 请求已映射到托管处理程序,但未安装 .NET 可扩展性功能。 您可以尝试的事情:
- 确保 web.config 文件的 NTFS 权限正确并允许访问 Web 服务器的 机器帐户。
- 检查事件日志以查看是否记录了任何其他信息。
- 验证 DLL 的权限。
- 如果请求映射到托管处理程序,请安装 .NET 可扩展性功能。
- 创建跟踪规则以跟踪此 HTTP 状态代码的失败请求。有关创建 失败请求的跟踪规则,点击here。
详细错误信息:
模块 AspNetCoreModuleV2 通知 执行请求处理程序 处理程序 aspNetCore 错误代码 0x00000000 请求的网址 https://indoc-chatbot-web-app:80/api/messages 物理路径 C:\home\site\wwwroot\api\messages 登录方式 匿名的 登录用户 匿名的更多信息:
此错误表示处理请求时出现问题。 Web 服务器接收到请求, 但在处理过程中发生了致命错误,导致 500 错误。Microsoft 知识库文章:
在网络聊天中测试时,开发者控制台显示 502 - bad gateway
POST https://webchat.botframework.com/v3/directline/conversations/aaUT42gmEkL3Ow8evdgBY-a/activities 502
有没有其他方法可以调试这个,或者有人知道是什么原因造成的?错误可能来自代码本身,因为我过去确实有这个工作并且在那之前发生了很多变化(但是我也使用了不同的端点通道,所以这可能是配置的问题)。我正在使用 .NET SDK 开发我的机器人。部署到 Azure 是使用 Github CI/CD(在 Azure 中配置)完成的。
【问题讨论】:
-
在 azure 以及代码中的 appsettings 中验证您的 Microsoft App id 和密码,通常在模拟器中,连接聊天机器人不需要这些信息。因此,这些信息可能在您的 appsettings 中为空或包含无效信息。
-
@RajeeshMenoth 你是对的,它们在模拟器中不是必需的,但在使用带有 Ngrok 的 azure 通道时是必需的。我确实仔细检查了 AppId/密码并且组合匹配。如果不是,我使用 Ngrok 隧道的本地代码将无法正常工作。
-
Visual Studio 在视图选项卡下有一个选项称为云资源管理器,您可以连接和调试代码以进行实时测试。
标签: c# azure botframework .net-5