我一直在关注Microsoft的Teams C#教程found here,并且在大多数方面都取得了成功。但是,当我自己托管消息传递终结点而不是通过它们的Azure服务托管时,我似乎无法使我的应用程序正常工作,这最终对我来说不是一个选择,因为对于我们需要做的事情来说定价太高了。
我通过发布示例项目并确保可通过HTTPS在外部使用自己来托管端点。我可以访问Teams中的自定义标签,所以我知道它是在线的,只是当我尝试通过聊天窗口使用消息传递扩展时,消息传递端点似乎失败并显示“无法访问应用程序”错误。
使用开发人员工具进行调试时,出现502错误:Bot返回了失败的状态代码“禁止”,错误代码1008。到目前为止,我针对类似问题看到的每个潜在解决方案都对我没有用,尽管我仍然觉得显而易见的东西。自己托管端点时是否需要采取特殊步骤?该文档在解释该过程方面做得很糟糕,可能是因为Microsoft希望您付费在Azure上托管该应用程序。
答案 0 :(得分:0)
这通常是由于应用ID /应用密钥未在您的应用中正确注册或使用而导致的,因此未正确向bot框架服务进行身份验证。在何处/如何执行此操作取决于您最初使用的示例代码/项目模板,但通常在.config文件中(或以前在.bot文件中)。
您需要的信息将位于:
答案 1 :(得分:0)
我知道AppID验证失败时通常是一个错误。机器人应用程序请求Azure AD验证身份。您的Web服务器可以访问Azure AD吗?如果您拒绝使用防火墙访问出站,则应允许Azure IP range。
答案 2 :(得分:0)
事实证明,这纯粹是一个网络问题,到目前为止,我们还没有真正弄清楚。但是我们尝试在其他地方托管该应用程序,这很好。如果有人遇到同样的问题,这是我的建议!