Visual Studio 2017 强制站点通过 https 加载,即使禁用了 ssl (Dotnet core 2.2)

Posted

技术标签:

【中文标题】Visual Studio 2017 强制站点通过 https 加载,即使禁用了 ssl (Dotnet core 2.2)【英文标题】:Visual Studio 2017 forces sites to load via https, even though ssl is disabled (Dotnet core 2.2) 【发布时间】:2019-10-24 11:46:36 【问题描述】:

出于某种原因,Visual Studio 2017(版本 15.9.12)拒绝以非 ssl 加载 ASP.Net Dotnet Core 2.2 页面。即使未选中 Enable SSL 并且启动浏览器路径设置为 http://localhost:15777(或者对于 Kestrel,它已设置),它也会自动将 s 附加到 http,如 https://localhost:15777 http://localhost:55333)。

launchSettings.json 文件如下所示(如您所见,它设置正确,但完全被忽略)。

    
  "iisSettings": 
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": 
      "applicationUrl": "http://localhost:15777",
      "sslPort": 0
    
  ,
  "profiles": 
    "IIS Express": 
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "http://localhost:15777",
      "environmentVariables": 
        "ASPNETCORE_ENVIRONMENT": "Development"
      
    ,
    "Nop.Web": 
      "commandName": "Project",
      "launchBrowser": true,
      "environmentVariables": 
        "ASPNETCORE_ENVIRONMENT": "Development"
      ,
      "applicationUrl": "http://localhost:55333"
    
  

这个,一周前没有这样做,我到处搜索帖子寻找答案。显然,某处存在错误,因此我正在寻找一种方法来使 Visual Studio、IIS Express 或 Kestrel 像预期的那样工作。 有什么想法吗?

【问题讨论】:

ASP.NET Core 2.1 + Kestrel (How to disable HTTPS)的可能重复 我看到了,但是对于 Core 2.2,一切都变了。仍在试图弄明白为什么 Core 2.2 如此糟糕 - 以前从未遇到过如此荒谬的问题。 “一切都改变了”是模糊的。该线程有几个即使对 3.0 也有效的答案(例如 .UseUrls("http://localhost:5000"))。 【参考方案1】:

它与视觉工作室无关。 您必须删除 Startup.cs 文件中的app.UseHttpsRedirecttion();

另外,您可以运行您的 Release 并且由于 app.UseHsts() 它会重定向到 https 直到它的时间到期。 尝试清除浏览器安全缓存。 你可以去chrome://net-internals/#hsts清除hsts安全缓存并删除你想要的地址。

【讨论】:

根本不在 Startup.cs 中使用它。这是 dotnet core 2.2 管道中的默认行为吗? 我完全删除了 VS2017,然后安装了 VS2019 并获得了相同的行为。 https - 不......没关系......什么。它没有在任何地方定义 - 我对网址进行了硬编码,它坚持这样做。那么,它不是 VS,而是 Kestrel 中的错误/功能?使用 Core 2.2.3 SDK .UseHttpsRedirection 现在是 2.2 中 .CreateDefaultBuilder 的一部分,所以这个答案本身是无效的。 我不相信它是 asp.net 核心的一部分。我尝试使用 ver 3.0-preview5 并且没有问题。 尝试清除我刚刚添加到答案中的 HSTS 安全缓存。希望能解决您的问题。如果您不想清除 hsts 缓存,也可以尝试使用其他浏览器

以上是关于Visual Studio 2017 强制站点通过 https 加载,即使禁用了 ssl (Dotnet core 2.2)的主要内容,如果未能解决你的问题,请参考以下文章

无法再从 Visual Studio 为 .NET 项目运行 localhost 调试站点

Visual Studio Docker Tools如何从头开始强制容器重建

如何在 Visual Studio 2017 中使用 Qt 库?

如何防止Visual Studio 2017添加对NugetFallbackFolder的引用

Visual Studio 2017在首次运行时未显示编译异常

如何通过VIsual Studio安装程序修改VS2017?