1. 程式人生 > >ASP.NET CORE 2.0 釋出到IIS,IIS如何設定環境變數來區分生產環境和測試環境

ASP.NET CORE 2.0 釋出到IIS,IIS如何設定環境變數來區分生產環境和測試環境

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.最後,重啟專案,設定完成,整個伺服器上的所有專案都是測試環境了。