2012-07-02 6 views
1

В IIS 7.5 web.config можно установить разрешение для различных путей/папок, как так:Условное разрешение местоположения в web.config?

<location path="logs/elmah/elmah.axd"> 
    <system.web> 
     <authorization> 
     <allow users="[email protected]" /> 
     <deny users="*" /> 
     </authorization> 
    </system.web> 
    </location> 

Можно ли сделать это разрешение условным? например, использовать это местоположение только в том случае, если это живой сервер, а не локальный или промежуточный или бета-сервер или сервер?

Я использую это, чтобы указать, что текущий сервер:

<appSettings> 
    <clear /> 
    <add key="DeploymentEnv" value="Debug" /> 
</appSettings> 

А потом web.config трансформирует изменить DeploymentEnv правильное значение.

ответ

4

Имея различные файлы Web.config для разных сред, это, вероятно, правильный путь. Посмотрите на Web.config transformations. В этом MSDN article показано, как настроить промежуточную конфигурацию.

+0

+1 Да, конечно. Я уже использую преобразования для параметров приложения, поэтому просто нужно использовать преобразования, чтобы включать только узел местоположения в production web.config –

2

Если вы собираетесь иметь условные файлы web.config в зависимости от среды, что он собирается искать? Имя машины? Айпи адрес? Наличие условий для выбора правильного может стать грязным и трудным для поддержания.

Проще всего иметь два или более конфигурационных файла для каждой из ваших сред. Там, возможно, теги mor, которые вам нужно добавить в свой конфигурационный файл позже, это зависит от среды. Наличие отдельных конфигурационных файлов помогает вам управлять этими изменениями. Убедитесь, что вы назвали их соответствующим образом, например, production.config uat.config и т. Д., И просто переименуйте их в web.config, когда вы перемещаете его в другую среду.

Смежные вопросы