[英]How to configure Visual Studio 2017 to expose a non-encrypted port in a ASP.Net MVC https site
我正在尝试使用Visual Studio 2017在我的locahost(开发机器)上测试来自Stripe.com的webhooks。我的网站使用https。 为了测试webhook,你需要一个url,所以在我的本地机器上我必须安装并使用ngrok。 Ngrok给了我一个提供给Stripe的网址,因此条纹知道发送帖子请求的位置。 问题是ngrok无法使用https!
我一直在寻找解决方案2天,我已经通过电子邮件发送了ngrok来询问,他们回答说
你应该能够配置VS以暴露一个非加密的端口,但我不是很熟悉它,我可以告诉你如何去做。 也许ngrok VS扩展会有帮助吗? https://ngrok.com/docs#visual-studio
我已经尝试过运行扩展程序。 没运气! 它只是打开ngrok.exe并运行它。
所以我试图看看是否可以打开/暴露一个非加密端口? 我认为这意味着使用http和NOT https的动作方法或控制器?
或者它意味着什么呢? 这可能在ASP.NET MVC中???
我能够让我的ASP.NET Core MVC项目在今天早上使用在IIS Express上运行的VS 2017中的ngrok接受测试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"
希望这有助于某些人 - 我也有一段时间难以让这个工作。
请参阅我的答案: 如何在Visual Studio 2017 Web Proj ASP.NET Core 2.0中禁用Https
注意:如果我错误地存在默认的不安全URL,则上述问题有解除禁用安全URL的解决方案。 我没有尝试过,因为在我现有的项目中已经定义了一个不安全的URL(因为我怀疑还有你的URL)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.