【问题标题】:Connection Error on Microsoft Bot after publishing it on AWS在 AWS 上发布 Microsoft Bot 后出现连接错误
【发布时间】:2016-08-18 08:55:01
【问题描述】:

我正在尝试将我通过 Visual Studio 2015 用 C# 编写的机器人发布到 AWS。我安装了 Amazon Cloud SDK 并能够成功地将机器人发布到 AWS。我用它提供的地址(http://benbot-dev.us-west-2.elasticbeanstalk.com/)更新了机器人端点。但是当我访问 Microsoft Bots 站点并测试机器人连接时,它显示无法连接到远程服务器。请帮忙。我认为这是 https 端点问题。但我不确定如何获取 API 网关端点,如果我应该这样做的话。

<<<<<<<<<<
500 InternalServerError
System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 52.42.245.162:443
   at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)
   --- End of inner exception stack trace ---
   at System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult, TransportContext& context)
   at System.Net.Http.HttpClientHandler.GetRequestStreamCallback(IAsyncResult ar)
   --- End of inner exception stack trace ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Intercom.DevPortal.Server.Controllers.BotManagerController.<PingV3BotAsync>d__54.MoveNext() in C:\a\1\s\DevPortalLib\Controllers\BotManagerController.cs:line 1420
>>>>>>>>>>>>>>>>

【问题讨论】:

  • 本地主机的“ping”可以到达 52.42.245.162 吗?如果是,您可以尝试从您的 AWS 服务中执行相同的操作吗?
  • 嗨@oldbam。 Txs 寻求帮助。不,我无法ping通。请求超时。我在想这意味着该机器人已发布但未链接到某些 API 服务???或者类似的东西,它有一个可以发送和接收消息的消息端点。但我不知道这是如何在 AWS 中完成的。他们让事情变得如此复杂。

标签: c# amazon-web-services bots botframework botconnector


【解决方案1】:

此异常消息告诉您,在您的服务器代码中,您正试图访问位于 52.42.245.162 的服务器,并且该服务器不可访问(更具体地说,https 端口 443 不可访问)。此 IP 解析为某个 AWS 主机(使用 nslookup 命令找出它,请参阅 this answer)。您可以尝试 ping 此 IP,或尝试查看端口 80 是否可以访问(两者都不是来自我的主机)。或者您可以尝试枚举该主机上是否打开了任何其他端口(搜索 google/bing 以获取如何执行此操作的说明)。如果您无法从主机访问该端口,Microsoft Bots 站点也无法访问它。如果您的服务在该 IP 上运行,最可能的原因是您必须在 AWS 上打开端口才能从公共互联网访问(搜索 google/bing 以查找 aws open portaws allow ssh

【讨论】:

  • 非常感谢。经过大量阅读后,我尝试在 beanstalk 环境中打开 443 端口,并要求提供 SSL 证书。我正在尝试从 AWS Certificate Manager 控制台请求新的 SSL 证书,它要求提供一个网站。现在我不明白我应该给哪个网站。机器人的网址??它不会采用该地址,因为那里没有亚马逊网站可以作为网站提供。所以应该给出哪个网站。我没有任何网站。我只是想在 AWS 云上发布一个机器人,但 AWS 中的这个复杂步骤真的让它变得如此困难。
  • 当导航到端口 443 时,监听该端口的 Web 服务器会提供一个证书来确认其身份。把它想象成某个权威机构签发的护照。您可能正在谈论您在 AWS 中托管的服务,您正在尝试为其获取有效证书。在这种情况下,它将是您托管服务的地址
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-21
  • 1970-01-01
  • 1970-01-01
  • 2021-03-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多