为.Net IIS App定义开发人员相关变量的最佳方法

时间:2015-11-11 21:41:51

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

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

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

我目前的做法是:

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

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

1 个答案:

答案 0 :(得分:2)

三个想法:

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