【问题标题】:Best way to define developer-dependent variables for .Net IIS App为 .Net IIS App 定义开发人员相关变量的最佳方式
【发布时间】:2016-02-13 02:58:45
【问题描述】:

我有一个由多个开发人员共享的 .Net 应用程序。一些开发人员希望在Application_Start() 中使用不同的配置,但我们都共享相同的代码库。

定义不同开发人员可以更改的自定义变量的最佳方法是什么?

我目前的做法是:

string value = Environment.GetEnvironmentVariable(UserEnvironmentalVariableName, EnvironmentVariableTarget.User);

但是应用程序不是在 IIS 上的用户帐户下运行的,所以这不起作用。

【问题讨论】:

  • nconfig 是一个插件,可让您覆盖不同计算机上的 web.config 设置。您根据机器名称命名它,因此每个人都有自己的个人计算机。听起来正是您正在寻找的。 (我相信它可以通过 nuget 获得)

标签: c# asp.net iis environment-variables


【解决方案1】:

三个想法:

1) 使用普通的 AppSettings 并在您的应用程序的 web.config 中存储所有对每个人都是标准的设置怎么样。 然后任何人都可以在他们的根 web.config(如 \Windows\Microsoft.NET\Framework64\v4.0.30319\config\web.config)中存储他们想要的任何其他变量。只要“UserEnvironmentalVariableName”不在您的应用程序的 web.config 中,它就会继承机器根 web.config 中的任何内容。

2) 如果开发人员使用的是 Windows 10,另一个与现有代码非常相配的选项是,您现在可以在应用程序池级别设置环境变量

appcmd.exe set config  -section:system.applicationHost/applicationPools /+"[name='DefaultAppPool'].environmentVariables.[name='myPersonalVariable',value='some value']" /commit:apphost

或者只是编辑 applicationHost.config 并像下面这样添加它们:

    <applicationPools>
        <add name="DefaultAppPool" managedRuntimeVersion="v4.0">
            <environmentVariables>
                <add name="myPersonalVariable" value="some value" />
            </environmentVariables>
        </add>
    </applicationPools>

3) 另一种是在 Visual Studio 中使用配置转换:https://msdn.microsoft.com/en-us/library/dd465318.aspx

【讨论】:

  • 谢谢!不幸的是,我们并非都在使用 Windows 10,但很高兴知道这一点。我选择了第一个选项,因为它对我来说似乎是最直接的。
猜你喜欢
  • 2011-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-06
  • 1970-01-01
  • 2016-12-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多