在launchSettings.json我有以下内容。它有效,我可以使用https://localhost:44300访问 Swagger 和页面的其余部分。
{ ...
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:52088",
"sslPort": 44300
}
}, ...
}
当我将"sslPort": 44300更改为例如"sslPort": 44299时,我仍然可以通过相应地更改 URL 来访问这些内容。
但是,当我将值设置为 5100 时,我注意到内容不再可访问。事实上,似乎工作区间相当有限,只集中在44300附近。
那是关于什么的?!
我已经关闭了防火墙,以防万一。在配置中,我尝试添加这样的网址。行为没有变化。
WebHost.CreateDefaultBuilder(args)
//.UseUrls("https://localhost/5100")
.UseStartup<Startup>();
如何强制应用程序在我选择的端口上正常运行?
在.NET Core 2.2 的文档之后,我添加了重定向的配置,如下所示。正如人们担心的那样,它对这个问题没有影响。
services.AddHttpsRedirection(_ =>
{
_.RedirectStatusCode = StatusCodes.Status307TemporaryRedirect;
_.HttpsPort = 5100;
});
注意到文档本身建议将 5001 作为替代端口号,我开始怀疑该问题可能完全位于其他地方。我在另一台机器上重新创建了设置,并且能够重现错误。不过,这两台电脑都是我配置的,所以如果不是我的人能确认这种行为,那就太好了。
我有一个使用 Nmap 来检查端口答案的提示,显然端口 5100 上有一些答案。同样可以使用 TelNet 来确认。但是,Swagger 以及使用 PostMan 的调用仍然失败......