【问题标题】:Ngrok not passing my post request on to localhostNgrok 没有将我的帖子请求传递给 localhost
【发布时间】:2018-04-07 10:28:23
【问题描述】:

我正在尝试为 Stripe 设置一个 webhook,并且根据 Stripe doc 创建了一个控制器,以便在虚拟机中运行的 ASP.Net MVC 中执行此操作(也许这会改变一些事情?)。我一直在测试控制器中的操作以查看是否可以接收帖子,因此我正在使用 Postman 发送有效的本地主机帖子请求。但是现在我需要使用 Ngrok 给我的 localhost 一个 url,以便 Stripe 可以使用它。我正在运行 ngrok 并传入这些参数来运行

ngrok http -host-header="localhost:44368" 44368

这是我看到的,一切看起来都很好

但现在当我尝试在 Postaman 中使用它时

https://11d1ba97.ngrok.io/StripeWebHook/Index

我收到 502 Bad Gateway 消息,并且操作方法永远不会被命中。

当我尝试从 Stripe 发送测试 webhook 时,我遇到了同样的问题。 仅供参考 - Ngrok 使用 'localhost:4040' 的请求时间显示我所有的响应时间为 0 毫秒。

更新 - 我收到了 ngrok 的电子邮件 “问题在于 HTTPS。ngrok 终止 HTTPS 流量,然后将未加密的 http 流量转发到您的本地应用程序。您想做以下两件事之一:

1) 让您的应用程序也公开一个 HTTP 端口并将流量转发到该端口 2) 使用 ngrok 的 TLS 隧道(将 TLS 流量交给您进行终止)。使用此选项,您将拥有执行证书管理、证书不匹配等的所有复杂性,仅供参考。如果可能的话,我会推荐 #1"

问题 - 有人知道如何使用 Https 在 ASP.Net MVC 应用程序中打开 http 端口吗?

【问题讨论】:

  • 您找到解决方案了吗?
  • 嗨莫顿。不,我放弃了。这可能与我在 Macbook 上通过我的 VM 运行它有关。下周当我回到应用程序的那部分工作时,我会重新讨论这个问题,并告诉你。如果您找到解决方案,请回复。
  • 我发现我的问题和你的不完全一样。我让我与ngrok.exe http -region eu -host-header=rewrite mydomain:80 合作,我认为这与您的 https 问题无关。

标签: asp.net-mvc webhooks ngrok stripe.net


【解决方案1】:

我的问题是我的应用程序中的断点没有被命中。

我正在使用

ngrok http 58533

但将其更改为以下允许我的断点被命中。

ngrok http -host-header=rewrite localhost:58533

【讨论】:

  • ngrok http -host-header=rewrite http://localhost:58533 它对我有用。谢谢。
  • 58533 是带 tls 的端口?
【解决方案2】:

派对迟到了 :) 我可以通过取消选中属性中的启用 SSL 标志来使 http 工作。

第一步:右键Web Api项目,选择属性

第 2 步:下载并安装扩展程序

https://marketplace.visualstudio.com/items?itemName=DavidProthero.NgrokExtensions

第 3 步:从 Visual Studio 启动 ngrok Tunnel

(图片来自https://raw.githubusercontent.com/dprothero/NgrokExtensions/master/docs/img/menu-item.png

第四步:复制转发http url

第 5 步:粘贴 Postman,并附加控制器/动作

你得到 200! (点赞?:))

【讨论】:

    猜你喜欢
    • 2019-01-14
    • 2021-05-23
    • 2014-08-02
    • 2018-08-21
    • 2020-06-16
    • 1970-01-01
    • 2010-12-30
    • 1970-01-01
    • 2012-03-12
    相关资源
    最近更新 更多