11

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 的调用仍然失败......

4

2 回答 2

16

IIS Express的文档说明(我的重点):

如果要测试对站点的 SSL 访问,可以使用 IIS Express 执行此操作,方法是使用 44300 和 44399 之间的 SSL 端口并使用 IIS Express 自签名证书。当您的网站在 IIS Express 下启动时,尝试将 SSL 与此范围之外的端口一起使用会导致 URL 绑定失败

链接的docs.microsoft.com页面中有说明,其中介绍了如何配置您的计算机以允许这样做。简短的版本是:

  1. WIN-R > mmc.exe
  2. 文件菜单 > 添加/删除管理单元...
  3. 在左侧选择证书Add >,然后单击按钮
  4. 选择Computer AccountNext >然后Finish
  5. 单击Ok以关闭“添加或删除管理单元”窗口
  6. 在左侧的树形视图中展开证书(本地计算机)> 个人 > 证书
  7. 找到颁发给localhost的证书,其友好名称为IIS Express Development Certificate > 双击打开它
  8. 移动到详细信息选项卡并一直向下滚动以找到指纹
  9. 复制并粘贴该值(在列表视图中单击它,该值将被拖放到窗口底部的文本字段中)

现在您已经捕获了证书的指纹:

  1. 以管理员身份打开命令提示符
  2. 运行命令netsh http add sslcert ipport=0.0.0.0:5100 certhash=**Insert_Thumbprint_From_Step_9_Above_Here** appid={00112233-4455-6677-8899-AABBCCDDEEFF}
  3. 重新启动 IIS Express/您的调试会话

IIS Express 现在应该绑定到 5100(您可以将上面步骤 2 中命令中的端口更改为您的选择之一),让 Visual Studio 弹出一个浏览器窗口来加载您的站点。

于 2018-12-07T22:06:00.527 回答
-1

您的工具栏中将运行一个 IIS Express 图标。通过 IIS Express 在端口 44300 下停止站点,然后再次重新启动站点,它现在应该通过您的新端口运行。如果这不起作用,只需退出 IIS Express 并重新启动站点。

在此处输入图像描述

于 2018-12-06T00:57:28.953 回答