最近項目升級到net6,發現視圖報錯后直接顯示404錯誤,經過幾天的百度搜索,終於找到解決辦法。
原來是net環境變量ASPNETCORE_ENVIRONMENT等於Development時候才會提示錯誤信息出來。
方法1、
1、IIs環境:在發布的項目文件夾中找到web.config文件,修改:
<aspNetCore processPath="dotnet" arguments=".\Cloud.Boss.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess"/>
為:
<aspNetCore processPath="dotnet" arguments=".\Cloud.Boss.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess"> <environmentVariables> <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" /> </environmentVariables> </aspNetCore>
arguments改為你項目的dll名稱,其他運行環境需要通過命令形式修改。
2、cmd或者是powershell下面使用dotnet 命令進行運行的需要先設置環境變量
SET ASPNETCORE_ENVIRONMENT=development
3、dockerfile中(區分大小寫,寫錯了會無效)
ENV ASPNETCORE_ENVIRONMENT development
4、docker run -e 寫法(創建並運行容器的時候),-e 一定要緊跟run后面
docker run -e "ASPNETCORE_ENVIRONMENT=development" -d -p 8085:8085 -p 8086:8086 --name="容器名稱" 鏡像名稱:latest
方法2:代碼中聲明
var builder = WebApplication.CreateBuilder(new WebApplicationOptions
{
EnvironmentName = Environments.Staging
});
