因此,随着ASP.NET Core 2.1的出现,Kestrel现在自动在HTTP旁边创建一个HTTPS端点,并且默认项目模板已设置为从HTTP重定向到HTTPS(很容易撤消)。
但是我的问题是...如何为我的项目完全禁用HTTPS。我已经阅读了文档,并使用了HTTPS的各种配置设置,但似乎没有什么允许我关闭它并只运行HTTP项目。
我疯了还是只是想念一些东西。我希望这非常容易做到。
答案 0 :(得分:24)
找出实现我想要做的正确方法,就是使用.UseKestrel()专门配置Kestrel并只需指定一个地址,如下所示:
WebHost.CreateDefaultBuilder(args)
.UseKestrel(options => {
options.Listen(IPAddress.Loopback, 5080); //HTTP port
})
.UseStartup<Startup>();
影响覆盖默认设置,并在Kestel启动时显示此警告:
warn: Microsoft.AspNetCore.Server.Kestrel[0]
Overriding address(es) 'https://localhost:5001, http://localhost:5000'. Binding to endpoints defined in UseKestrel() instead.
如果指定了第二个地址,它将假定该地址将使用内置的开发者证书进行保护,例如:
WebHost.CreateDefaultBuilder(args)
.UseKestrel(options => {
options.Listen(IPAddress.Loopback, 5080); //HTTP port
options.Listen(IPAddress.Loopback, 5443); //HTTPS port
})
.UseStartup<Startup>();
您当然可以按照以下说明专门保护您的SSL地址:
Nearest Neighbor Searching using Voronoi Diagrams
这是生产设置所必需的。
答案 1 :(得分:22)
如果您使用的是Visual Studio 2017,则可以执行以下操作:
这将更新launchSettings.json文件中的iisExpress设置。
答案 2 :(得分:15)
在Startup.cs中,删除中间件
app.UseHttpsRedirection();
答案 3 :(得分:10)
在项目的文件Properties/launchSettings.json
中,查看键applicationUrl
。您会找到类似的东西:
...
"applicationUrl": "https://localhost:5001;http://localhost:5000",
...
删除https
端点即可完成。
修改
如@Xorcist所述,文件launchSettings.json
未发布。因此,以上解决方案仅在开发环境中有效。要在生产环境和开发环境中都禁用https,并且通常要配置要监听的URL,还可以执行以下操作之一:
使用--urls
的{{1}}参数,将与dotnet run
中的applicationUrl
具有相同的效果。例如:launchSettings.json
。再次,删除您不想使用的那个。
使用dotnet run --urls=http://0.0.0.0:5000,https://0.0.0.0:5001
环境变量也可以实现相同目的。
ASPNETCORE_URLS
中配置Kestrel端点(似乎在2.0中无法做到)。 appsettings.json
扩展方法useUrls
也可以实现相同的目的。我更喜欢其他解决方案,因为这些解决方案会将您硬编码为应用程序终结点,并且在不重新编译应用程序的情况下无法更改。所有可能的选项在Microsoft Docs on this中进行了详细说明。
答案 4 :(得分:5)
在Program.cs中,如下添加UseUrls:
WebHost.CreateDefaultBuilder(args)
.UseUrls("http://localhost:5000")
.UseStartup<Startup>();
然后在Startup.cs中删除/注释以下内容:
app.UseHttpsRedirection();
答案 5 :(得分:2)
使用ASPNET CORE 2.2,我只需将Web服务器URL设置为http而不是https,它就可以自行选择它。我将其作为自托管进程运行。
答案 6 :(得分:1)
dotnet
CLI现在具有用于此的模板。
dotnet new webapi --no-https
答案 7 :(得分:1)
答案 8 :(得分:0)
关闭 https 在于这 3 项更改...
属性/launchSettings.json
Startup.cs