ASP.NET CORE 2.0 釋出到IIS,IIS如何設定環境變數來區分生產環境和測試環境
阿新 • • 發佈:2018-12-09
0.前言
因為給前端的測試環境是windows,所以要設定windows上的環境變數,如果上Linux就沒有這篇文章了,所以大家不要在意為什麼core不放在linux上。
1.網上的解決方案
a 方式:通過 setx 命令設定環境變數引數,文章地址:https://www.cnblogs.com/xishuai/p/asp-net-core-set-hosting-environment-with-publish.html
命令列:
>setx ASPNETCORE_ENVIRONMENT "Development"
SUCCESS: Specified value was saved.
結論:無效,如果是直接使用dotnet run 命令是有效的,但是部署在IIS上,設定無效。
b 方式:通過修改釋出後的webconfig,文章地址:https://www.cnblogs.com/hulk-/p/5947467.html
<configuration> <system.webServer> <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/> </handlers> <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"> <environmentVariables> <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" /> </environmentVariables> </aspNetCore> </system.webServer> </configuration>
結論:有效,但是每次釋出都需要改一次webconfig,非常麻煩!
c 方式:這個是最好的解決方案,國內竟然沒有人寫出來,百度了半天,都找不到,後來在stackoverflow找到的方案,地址:https://stackoverflow.com/questions/31049152/publish-to-iis-setting-environment-variable#
詳細操作步驟:
1:開啟IIS,選擇本機,找到管理-配置編輯器
2.節選擇:system.webServer/aspNetCore, 找到,點選右邊編輯項
3.點選新增,設定ASPNETCORE_ENVIRONMENT:Development
4.最後,重啟專案,設定完成,整個伺服器上的所有專案都是測試環境了。