分类 标签 存档 订阅 搜索

ASP.NET CORE 2.0 发布到 IIS,IIS 如何设置环境变量来区分生产环境和测试环境

11 浏览

前言

因为给前端的测试环境是 windows, 所以要设置 windows 上的环境变量,如果上 Linux 就没有这篇文章了,所以大家不要在意为什么 core 不放在 linux 上。

网上的解决方案

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, 找到 environmentVariables,点击右边编辑项

3. 点击添加,设置 ASPNETCORE_ENVIRONMENT:Development

 4. 最后,重启项目,设置完成,整个服务器上的所有项目都是测试环境了。

评论  
留下你的脚步
推荐阅读