我正在尝试使用 Visual Studio 2017 在我的 locahost(开发计算机)上测试来自 Stripe.com 的 webhook。我的网站使用 https。为了测试 webhooks,您需要一个 url,因此在我的本地计算机上我必须安装并使用 ngrok。 Ngrok 给了我一个要提供给 Stripe 的 url,以便 stripe 知道将 post 请求发送到哪里。问题是 ngrok 不适用于 https!
我已经寻找解决方案两天了,我给 ngrok 发了电子邮件询问,他们回复了
you should能够配置 VS 以公开非加密端口,但我不太熟悉它,我可以告诉你如何去做。也许 ngrok VS 扩展会有帮助?https://ngrok.com/docs#visual-studio https://ngrok.com/docs#visual-studio
我已经尝试过运行扩展程序。没有运气!它所做的只是打开 ngrok.exe 并运行它。
所以我想看看是否可以打开/公开非加密端口?我认为这意味着使用 http 而不是 https 的操作方法或控制器?
或者还有别的意思吗?这在 ASP.NET MVC 中可能吗???
今天早上,我能够在 IIS Express 上运行的 VS 2017 中使用 ngrok 让我的 ASP.NET Core MVC 项目接受测试 Stripe webhooks 调用。
我必须做两件事:
-
关app.UseHttpsRedirection()
测试时。我修改了我的Startup.Configure(..)
仅在不开发时使用 HTTP 重定向,如下所示:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
// <snip>
}
else
{
// <snip>
app.UseHttpsRedirection(); // <- Moved from outside to inside else block to allow ngrok tunneling for testing Stripe webhooks
}
// <snip>
app.UseMvc();
}
-
使用网站的非 HTTPS URL 启动 ngrok 隧道。就我而言,我的项目配置为使用以下端口:
<binding protocol="http" bindingInformation="*:64768:localhost" />
<binding protocol="https" bindingInformation="*:44358:localhost" />
所以我的 ngrok 命令是这样的:
ngrok http 64768 -host-header="localhost:64768"
希望这对某人有帮助 - 我也努力了一段时间才让它发挥作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)