如何在 Visual Studio 2017 Web Proj ASP.NET Core 2.0 中禁用 Https

Posted

技术标签:

【中文标题】如何在 Visual Studio 2017 Web Proj ASP.NET Core 2.0 中禁用 Https【英文标题】:How To Disable Https in Visual Studio 2017 Web Proj ASP.NET Core 2.0 【发布时间】:2018-03-12 10:24:16 【问题描述】:

我在 Visual Studio 2017 中使用 ASP.NET Core 2.0 创建了一个默认项目。我选择了带有 MVC 和个人使用身份验证的 Web 应用程序。默认情况下,它正在配置并使用 https。我尝试通过进入项目属性并删除用户 ssl 并将 https 更改为 http 来禁用它,但随后我得到了 IIS Express 连接错误或 404。

我以前没有看到默认的 https。这是从哪里来的,我可以在哪里禁用它?

【问题讨论】:

.net 框架见***.com/a/43886999/939213 【参考方案1】:

更新 .Net 6

如果您偶然发现了这个问题,但希望在 .Net 6 中禁用 SSL,请按照以下说明操作:

    通过删除 app.UseHttpsRedirection(); 禁用 SSL 重定向 (可选)使用app.Run("http://localhost:5000");定义一个默认监听端口,如果省略,将分配一个随机端口。

.Net Core 2.0 的原始答案:

我刚刚使用 net core 2.0 创建了一个默认的 MVC 应用程序。

要禁用 SSL,您需要执行 2 个步骤。您可以通过使用 Visual Studio GUI 或通过编辑 launchsettings.json(进一步向下)来完成此操作

转到您的项目属性 在“调试”类别中取消选中 SSL 选项 将应用程序 URL 复制到开始浏览器输入

瞧:

如果您不喜欢使用该界面,您也可以编辑launchsettings.json 文件,通过设置sslPort: 0"launchUrl": "http://localhost:13121/"(或您想要启动应用程序的任何位置)


  "iisSettings": 
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": 
      "applicationUrl": "http://localhost:13121/",
      "sslPort": 0 
    
  ,
  "profiles": 
    "IIS Express": 
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "http://localhost:13121/",
      "environmentVariables": 
        "ASPNETCORE_ENVIRONMENT": "Development"
      
    ,
    "WebApplication1": 
      "commandName": "Project",
      "launchBrowser": true,
      "environmentVariables": 
        "ASPNETCORE_ENVIRONMENT": "Development"
      ,
      "applicationUrl": "http://localhost:13122/"
    
  

【讨论】:

虽然这行得通,但当我登录到我的网站时,它会成功登录,但从不设置身份验证 cookie,这意味着我无法访问管理页面 提示:launchUrl 接受相对 URL,因此您实际上不必复制方案并在那里托管。只需输入/ oder 将其留空。 看起来一旦设置了sslPort,再次设置sslPort为0后iisexpress就不会再返回http了。 所以这是 Visual Studio 中的另一个 Microsoft 错误?每次升级都会变得更糟。啊! 我们如何在 mac 上禁用它?【参考方案2】:

我只是遇到了同样的问题(即,我需要一个非 SSL URL 来建立一个有效的 ngrok.com 隧道)

可能定义了另一个不安全的本地主机 URL。

我意识到问题是禁用安全的,但您可能不需要。 您可能已经定义了一个不安全的。

诚然,我继承了这个项目,所以我不知道默认项目是否会配置相同。我的假设是已经有一个不安全的 URL 可供您使用,您可能会忽略它。

如果我错了,这个答案似乎不错 (Ngrok errors '502 bad gateway'),但我也不需要尝试。

只需查看“开发服务器”属性即可。

请看下面的截图:

【讨论】:

投反对票,因为问题是关于 ASP.NET Core 而答案是关于 ASP.NET (Framework) 赞成,因为我不是在寻找与 ASP.NET Core 相关的答案,而是想找到关于 ASP.NET(框架)的答案。不幸的是,即使将Enable SSL 设置为 False,该死的东西仍然试图在我没有设置的 HTTPS 上打开,所以这无论如何都没有帮助。 如果项目名称非常敏感,请考虑使用虚拟项目来指向信息,而不是隐藏部分图像,否则根本不要放置图像并仅使用文本进行说明 @EslamBadawy 说明是“只需查看“开发服务器”属性。”所以图像应该只添加到那个...... 在哪里可以找到“开发服务器”属性?我有同样的问题 - VS 坚持使用 SSL,而 SSL 没有在任何地方定义。【参考方案3】:

转到应用程序属性并取消选中“启用 SSL”

【讨论】:

不幸的是,这不再适用于 Visual Studio。这是一个 MS 拒绝承认的未解决的错误。【参考方案4】:

如果@Marco 提供的答案没有解决问题,您可以试试这个,

当您创建新的 .net core mvc 应用程序时,_Layout cshtml 中将生成默认元标记,以将 http 请求升级为 https ("http-equiv="Content-Security-Policy" content="upgrade-insecure-requests ")。当您将应用程序部署到没有 http 的服务器时,您可能需要删除以下标签

http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"

同时注释 Startup.cs 文件中的以下行

app.UseHttpsRedirection();

【讨论】:

【参考方案5】:

这很可能在您的发布设置中。

我遇到了这个问题,我只是去发布设置,发现构建后,发布 url 包含 https。

【讨论】:

以上是关于如何在 Visual Studio 2017 Web Proj ASP.NET Core 2.0 中禁用 Https的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Visual Studio 2013或Visual Studio 2017设置TFS 2013

如何设置 TFS 2013 以使用 Visual Studio 2013 或 Visual Studio 2017 构建

无法找到visual studio 2017生成工具

visual studio 2017 如何下载和安装

如何在 Visual Studio 2017 中创建 Visual c++ MFC 控制台项目

如何在 Visual Studio 2017 中启用 WiX 项目