在 ASP.NET Core 中禁用HTTPS

Expecto.Patronum發表於2019-10-10

點此檢視原文

我們在VS中新建一個 ASP.NET Core 專案的時候,可以選擇是否配置使用HTTPS。如果選中了“為HTTPS配置”這個選項,在開發環境中想要臨時禁用HTTPS,只使用HTTP應該怎樣做呢?

Select Https

在網上可能會找到很多通過在Program.cs檔案中對Kestrel進行設定來禁用HTTPS的教程,或者是使用UseUrls()。如果我們只是需要在開發環境中禁用HTTPS,那麼在設定Kestrel之前,首先檢查兩個位置,可能會讓我們的工作更輕鬆。

UseHttpsRedirection

首先檢視一下Startup.csConfigure方法中,是否配置了HTTPS重定向:

app.UseHttpsRedirection();

UseHttpsRedirection為我們的應用新增了重定向HTTP請求到HTTPS請求的中介軟體。如果想要使用HTTP,那麼就註釋掉這行程式碼。

Properties/launchSettings.json

在我們專案的Properties/launchSettings.json檔案中,找到applicationUrl,類似如下程式碼:

...
"applicationUrl": "https://localhost:5001;http://localhost:5000",
...

https地址刪除,只保留http

需要注意的是,通過 Visual Studio Code 或者 dotnet new 命令建立的專案,可能不會存在launchSettings.json檔案,並且在釋出專案的時候也不會將launchSettings.json檔案包含進去,所以這種解決方案只對開發環境有效。

對於通過CLI來執行應用,也可以使用 --urls 引數來達到同樣的效果。例如: dotnet run --urls=http://0.0.0.0:5000,https://0.0.0.0:5001。那麼想要只使用HTTP,把命令中的https移除掉就好了。

參考

點此檢視原文
原文首發於Chi Blog

ASP.NET Core 2.1 + Kestrel (How to disable HTTPS)

相關文章