我一直在使用带有ASP.NET 4.X的ngrok而没有遇到任何问题。
不幸的是,当我尝试在ASP.NET Core 2中转发app build时,我遇到了一个我无法解决的问题。
我尝试了以下命令组合来启动ngrok:
ngrok http 44374-host-header =“localhost:44374”
ngrok http -host-header =重写localhost:44374
ngrok http 44374
所有人给出相同的结果。 Ngrok隧道启动,但是当我尝试打开给定的转发URL时,站点加载几分钟,然后显示502 Bad Gateway错误。它适用于http和https版本。
以管理员身份运行Visual Studio或ngrok无济于事。
答案 0 :(得分:7)
我解决了我的问题。
properties / launchSettings.json内容:
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:59889/",
"sslPort": 44374
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "https://localhost:44374/",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"NgrokTEST": {
"commandName": "Project",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"applicationUrl": "http://localhost:59890/"
}
}
}
因此,事实证明,ASP.NET Core使用不同的端口进行SLL连接,默认情况下使用它。
在ngrok中将端口更改为正常(在我的情况下为59890)解决了这个问题。
答案 1 :(得分:3)
只需在项目上单击右键-> 属性,然后禁用 SSL 。
答案 2 :(得分:2)
我想发布以下修复程序,如果有人通过Docker在https上运行ASP Core 2.X应用程序,则可能会有所帮助,以下对我有用:
ngrok http https://localhost:[PORT] --host-header="localhost:[PORT]" --subdomain [YOUR_SUBDOMAIN]
Example:
ngrok http https://localhost:44390 --host-header="localhost:44390" --subdomain 2gtest
这样我就可以运行ngrok而不会出现502错误。
答案 3 :(得分:0)
通过转发到http端口,我能够使ngrok使用http和https。因此,例如,如果您的应用在http的端口5000和https的端口5001上运行,请运行:
ngrok http 5000