如何在 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 构建