Don*_*ana 6 c# https iis-express asp.net-core asp.net-core-2.2
在launchSettings.json中,我有以下内容.它工作正常,我可以使用https:// localhost:44300访问Swagger和页面的其余部分.
{ ...
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:52088",
"sslPort": 44300
}
}, ...
}
Run Code Online (Sandbox Code Playgroud)
当我将"sslPort":44300更改为例如"sslPort":44299时,我仍然可以通过相应地更改URL来访问这些内容.
但是,当我将值设置为5100时,我注意到内容不再可访问.事实上,似乎工作范围相当有限,只集中在44300左右.
那是什么意思?!
为了以防万一,我关掉了防火墙.在配置中我尝试添加这样的网址.行为没有变化.
WebHost.CreateDefaultBuilder(args)
//.UseUrls("https://localhost/5100")
.UseStartup<Startup>();
Run Code Online (Sandbox Code Playgroud)
如何强制应用程序在我选择的端口上正常运行?
在.NET Core 2.2的文档之后,我添加了重定向的配置,如下所示.如此担心,它对这个问题没有影响.
services.AddHttpsRedirection(_ =>
{
_.RedirectStatusCode = StatusCodes.Status307TemporaryRedirect;
_.HttpsPort = 5100;
});
Run Code Online (Sandbox Code Playgroud)
注意到文档本身建议将5001作为替代端口号,我开始怀疑问题可能完全位于其他地方.我在不同的机器上重新创建了设置,并能够重现错误.不过,两者都是由我配置的计算机,所以如果有人不能确认这种行为,那就太好了.
我有一个提示要使用的Nmap检查端口的答案,显然有什么东西接听端口5100同样可以使用证实TELNET.然而,Swagger以及使用PostMan的电话仍然失败......
IIS Express的文档指出(我的重点):
如果要测试对站点的SSL访问,则可以使用IIS Express,方法是使用44300和44399之间的SSL端口并使用IIS Express自签名证书。当在IIS Express下启动网站时,尝试将SSL与超出此范围的端口一起使用会导致URL绑定失败。
在链接的docs.microsoft.com页面上有说明,其中包括如何配置计算机以允许此操作。简短的版本是:
Add >
按钮Next >
然后Finish
Ok
以关闭“ 添加或删除管理单元”窗口现在,您已经捕获了证书的指纹:
netsh http add sslcert ipport=0.0.0.0:5100 certhash=**Insert_Thumbprint_From_Step_9_Above_Here** appid={00112233-4455-6677-8899-AABBCCDDEEFF}
IIS Express现在应该绑定到5100(您可以在上面的步骤2中将命令中的端口更改为您选择的端口),从而使Visual Studio弹出一个加载您的网站的浏览器窗口。
归档时间: |
|
查看次数: |
414 次 |
最近记录: |