【问题标题】:Bot framework V4 500 - internal server error when deployed to azure (working with Ngrok/locally)Bot framework V4 500 - 部署到 azure 时出现内部服务器错误(使用 Ngrok/本地)
【发布时间】: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 错误。

    View more information »

    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


    【解决方案1】:

    Rajeesh Menothin a comment

    在 Visual Studio 中,视图选项卡下有一个选项称为云资源管理器,您可以连接和调试代码以进行实时测试。

    有关详细信息,请参阅 Microsoft 文档:Troubleshoot HTTP 500 Internal Service Errors

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-09
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 2016-10-27
      • 2014-07-08
      相关资源
      最近更新 更多