我使用 ASP.NET Core 2.0 在 Visual Studio 2017 中创建了一个默认项目。我选择了带有 MVC 和个人使用身份验证的 Web 应用程序。 默认情况下,它已配置并使用 https。我尝试通过进入项目属性并删除用户 ssl 并将 https 更改为 http 来禁用该功能,但随后我收到 IIS Express 连接错误或 404。
我以前没有见过默认的 https。 它来自哪里?我可以在哪里禁用它?
更新.Net 6
如果您偶然发现这个问题,但希望在 .Net 6 中禁用 SSL,请按照以下说明操作:
app.UseHttpsRedirection();
app.Run("http://localhost:5000");
如果省略,将分配一个随机端口。.Net Core 2.0 的原始答案:
我刚刚使用 net core 2.0 创建了一个默认的 MVC 应用程序。
要禁用 SSL,您需要执行 2 个步骤。您可以通过使用 Visual Studio GUI 或编辑 launchsettings.json(进一步向下)来完成此操作
瞧瞧:
如果您不喜欢使用该界面,您也可以通过设置
sslPort: 0
和 "launchUrl": "http://localhost:13121/"
(或您想要启动应用程序的任何位置)来编辑 launchsettings.json 文件
{
"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/"
}
}
}
我也遇到了同样的问题(即,我需要一个非 SSL URL 来建立有效的 ngrok.com 隧道)
我意识到问题是禁用安全的,但你可能不需要这样做。 您可能已经定义了一个不安全的。
诚然,我继承了这个项目,所以我不知道默认项目是否会配置相同。我的假设是,您可能会忽略一个已经可用的不安全 URL。
如果@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();
它很可能在您的发布设置中。
我遇到了这个问题,我只是进入发布设置,发现构建后,发布网址包含 https。