Machine config где находится
Перейти к содержимому

Machine config где находится

  • автор:

Где находится Machine.Config?

Я хочу применить изменение, чтобы использовать настройки Server GC для моего приложения C # 3.5 — я могу сделать это, отредактировав файл machine.config .

Проблема только в том, что я не знаю, где это.

Как я могу найти путь к этому файлу повторяющимся образом на нескольких разных машинах

задан 24 фев ’10, 08:02

9 ответы

32-бит

64-бит

[version] должно быть равно v1.0.3705 , v1.1.4322 , v2.0.50727 or v4.0.30319 .

v3.0 и v3.5 просто содержать дополнительные сборки для v2.0.50727 так что не должно быть config\machine.config . v4.5.x и v4.6.x хранятся внутри v4.0.30319 .

Вероятно, стоит упомянуть только два каталога [версия], в которых вы найдете файл machine.config: v2.0.50727 и v4.0.30319, поскольку v3.0 и v3.5 используют .NET 2.0 CLR, а v4.5.x — добавляйте замены, поэтому не создавайте собственных каталогов фреймворков. Да, и если вам не повезло, что вы все еще используете .NET 1.1, тогда может быть каталог Framework / v1.1.4322. — Скотт Лерх

@ScottLerch В моей системе это не так. Есть v1.0.3705, v1.1.4322, v2.0.50727, v3.0, v3.5 и v4.0.30319 — Кевин Панко

@KevinPanko да, я уже упоминал предостережение относительно 1.1, но должен был также упомянуть 1.0 . просто мне не приходилось иметь дело ни с одним из них в течение длительного времени. Вы не должны найти machine.config в своих каталогах v3.0 или v3.5, если вы это сделаете, я не знаю, почему. — Скотт Лерх

Не забудьте открывать файлы .config с помощью блокнота, запущенного от имени администратора, чтобы при сохранении чего-либо система не сохраняла ваши изменения в неправильной папке на основе 32- или 64-разрядной версии. — Афшин Теймоори

@AfshinTeymoori Я не уверен на 100%, но если вы запустите блокнот в режиме без администратора, вы вообще не сможете сохранить какие-либо изменения, так как у вас нет доступа для записи в файл? (также, если вы запускаете в админке или нет, не должно меняться, если вы сохраняете в 32 или 64 бит). — Питер

Вы можете запустить это в PowerShell:

Что выводит это для .net 4:

Однако обратите внимание, что это может измениться в зависимости от того, работает ли .net как 32- или 64-разрядная версия, что приведет к \Framework\ or \Framework64\ соответственно.

Файл machine.config

Управление конфигурацией в ASP.NET осуществляется с помощью конфигурационных файлов XML. В них хранится вся информация, необходимая для настройки основных параметров приложения ASP.NET, а также параметров, специфичных для вашего приложения.

Конфигурирование начинается с файла machine.config, который находится в каталоге с:\Windows\Microsoft.NET\Framework\[версия]\Config. В этом файле определяются поддерживаемые разделы конфигурационных файлов, настраивается рабочий процесс ASP.NET и регистрируются поставщики, которые могут использоваться для работы расширенных средств, таких как профили, членство и безопасность на основе ролей.

По сравнению с ASP.NET 1.x, в последних версиях ASP.NET файл machine.config был значительно упрощен. Для оптимизации процесса инициализации многие используемые по умолчанию параметры, которые раньше отображались в файле machine.config, теперь инициализируются программно. Однако их все равно можно видеть, открыв новый файл machine.config.comments (который находится в том же каталоге, что и machine.config). В этом файле содержится полная текстовая версия всех стандартных параметров вместе с описательными комментариями (это похоже на файл machine.config в ASP.NET 1.x).

Файл machine.config.comments позволяет узнать, какие параметры используются по умолчанию, и затем добавить в machine.config параметры с переопределенными значениями.

Наряду с файлом machine.config ASP.NET использует корневой файл web.config, который находится в том же каталоге и содержит дополнительные параметры настройки. Эти параметры настройки регистрируют основные обработчики HTTP и модули ASP.NET, устанавливают правила поддержки браузеров и определяют политику безопасности.

Все веб-приложения на компьютере наследуют параметры, указанные в этих двух файлах. Однако большинство из этих параметров представляет собой, по сути, основополагающие детали, которые никогда не нужно трогать. Многие из них не применяются, когда приложение развертывается на веб-сервере IIS, потому что заменяются похожими параметрами в IIS (которые имеют собственный конфигурационный файл по имени ApplicationHost.config). В следующем разделе описано одно исключение из этого правила — важный фрагмент информации, который по-прежнему размещен в файле machine.config.

Раздел <machineKey>

В разделе <machineKey> можно устанавливать специфичный для каждого сервера ключ, который должен использоваться для шифрования данных и создания цифровых подписей. Шифрование может применяться вместе с несколькими средствами ASP.NET. В ASP.NET оно автоматически используется для защиты cookie-наборов аутентификации с помощью форм, но его также можно применять и для защиты данных состояния представления. Упомянутый ключ также используется и для аутентификации с помощью внепроцессных поставщиков состояния сеанса.

Как правило, раздел <machineKey> принимает следующую форму:

Значение AutoGenerate,IsolateApps показывает, что ASP.NET будет создавать и сохранять ключи, специфичные для машины и для приложения. Другими словами, каждое приложение использует отличающийся, автоматически генерируемый ключ. Это помогает защититься от потенциальных атак, направленных на множество сайтов.

Если вам не нужны ключи, специфичные для приложения, можете выбрать применение одного ключа для всех приложений на текущем компьютере, как показано ниже:

Если вы используете веб-фабрику и запускаете одно и то же приложение на множестве компьютеров, оба эти подхода приведут к возникновению проблемы. Если вы запросите страницу, и она будет обработана одним сервером, а затем отправите ее, и ее обработает другой сервер, то второй сервер не сможет расшифровать состояние представления и cookie-файлы форм из первого сервера. Эта проблема возникает вследствие того, что два веб-сервера используют различные ключи.

Чтобы решить эту проблему, понадобится определить ключ явным образом в файле machine.config. Ниже показан пример элемента <machineKey> с двумя определенными атрибутами ключа:

Можно также жестко закодировать ключи, специфичные для приложения, добавив элемент <machineKey> в файл web.config, который размещен в виртуальном каталоге приложения. Этот подход понадобится, если вы окажетесь в ситуации, в которой комбинируются оба описанных ранее сценария. (К примеру, так нужно будет поступить, если вы запускаете приложение на множестве серверов и эти серверы содержат множество приложений, которым необходимы отдельные ключи.)

Значение validationKey может иметь от 40 до 128 символов. Настоятельно рекомендуется использовать ключи максимально возможной длины. Значение decryptionKey может иметь 16 или 48 символов. Если определено 16 символов, будет применяться шифрование по стандарту . Если определено 48 символов, будет использоваться шифрование . (Тройное шифрование означает, что алгоритм DES будет применяться три раза подряд.) Взломать шифр 3DES гораздо сложнее, чем DES, поэтому рекомендуется всегда использовать для decryptionKey именно 48 символов. Если задаваемая длина либо один из ключей будут выходить за пределы разрешенных значений, ASP.NET вернет страницу с сообщением об ошибке при запросе приложения.

Создавать собственные ключи проверки достоверности и расшифровки не имеет большого смысла. Если же вы все-таки попытаетесь это сделать, они не будут в достаточной мере случайными, что сделает их неустойчивыми к некоторым типам атак. Приемлемым вариантом является генерация устойчивого случайного ключа с помощью кода и криптографических классов .NET Framework (из пространства имен System.Security.Cryptography).

Ниже показана общая подпрограмма CreateMachineKey(), которая создает случайную серию байтов с помощью криптографически устойчивого генератора случайных чисел. Метод CreateMachineKey() принимает один параметр, который определяет количество используемых символов. Результат возвращается в шестнадцатеричном формате, необходимом для файла machine.config:

Эту функцию можно использовать в веб-форме для создания необходимых ключей. Например, следующий фрагмент кода создает 48-символьный ключ шифрования и 128-символьный ключ проверки достоверности, и отображает эти значения в двух отдельных текстовых полях:

Далее эту информацию можно скопировать и вставить в файл machine.config на каждом компьютере веб-сайта. Такой подход гораздо удобнее и безопаснее, чем создание ключей вручную.

Наряду с атрибутами validationKey и decryptionKey, которые были описаны выше, можно также выбрать алгоритм, который должен использоваться для создания хеш-кода состояния представления. Для максимально устойчивого шифрования рекомендуется применять алгоритм SHA1, но кроме него также доступны следующие алгоритмы: MD5 (Message Digest 5), который имеет более высокие показатели по производительности, AES (Rijndael) и 3DES (Triple DES).

К названию алгоритма может быть добавлен атрибут проверки достоверности, показывающий, какой метод шифрования должен использоваться для регистрационного удостоверения (login ticket), которое применяется в случае аутентификации с помощью форм. Допустимыми значениями являются AES, DES, 3DES и Auto (используется по умолчанию и варьируется в зависимости от того, какие параметры применяются для аутентификации с помощью форм).

Инструмент IIS Manager (Диспетчер IIS) также позволяет изменять параметры ключей машины. Для этого выберите компьютер веб-сервера в дереве веб-сайта и дважды щелкните на значке Machine Key (Ключ машины). В этой точке можно даже создавать новые случайные ключи для проверки и расшифровки, щелкая на опции Generate Keys (Генерировать ключи) в столбце Actions (Действия) в крайней справа области окна IIS Manager.

How to Machine.Config

In ASP.NET, configuration information is indeed stored in either the machine.config or web.config files. The machine.config file serves as the root configuration file and is responsible for providing ASP.NET configuration settings for all applications hosted on the web server.

Configuration settings

The machine.config file is an integral part of the Microsoft .NET Framework and comes pre-installed with it. It contains default configuration settings that are applied to every web application on the server. Unlike the web.config file, which is specific to individual applications, there is only one machine.config file per machine.

The machine.config file is typically located in the directory:

Where «%version%» refers to the installed version of the .NET Framework. This file acts as a central repository for default configuration information for various application types, including web applications.

ASP.NET MVC. Конфигурационный файл Web.config. Часть 1. Основные сведения

Расположение файла Web.config

Это не просто важный, это обязательный файл для работы любого приложения. Web.config представляет собой файл, содержащий разметку формата XML. Другими словами – это обычный XML-документ. Все настройки логически разделены на группы. Каждая группа отвечает за настройку какой-то части приложения, либо за настройку веб-сервера, который обслуживает наше приложение. Уже внутри групп расположены отдельные секции, представляющие ту или иную настройку.

Группы и секции в файле Web.config

Преимущества использования файла Web.config:

  • централизованное место для всех настроек в приложении
  • приложение можно настроить максимально гибко и полно
  • возможность описать собственные настройки, характерные для текущего проекта
  • позволяет избежать проблемы жестко закодированных параметров в коде приложения
  • при изменении настроек нет необходимости перекомпилировать код
  • файл в формате стандарта XML

Чаще всего, при разработке типовых веб-приложений разработчики используют только один файл Web.config, расположенный на уровне текущего проекта. Однако этот файл является лишь частью целой иерархии конфигурационных файлов, которые использует в своей работе среда ASP.NET. Давайте посмотрим на всю цепочку файлов, составляющих эту иерархию:

Machine.config – самый первый и главный файл в иерархии. В нем определены основные настройки для среды ASP.NET, которые будут использоваться на данном физическом сервере.

Web.config – базовая версия этого файла. Здесь описаны значения по умолчанию для многих компонентов ASP.NET. Этот файл дополняет и расширяет файл machine.config, он располагается в той же директории.

ApplicationHost.config – в этом файле определены настройки а также значения по умолчанию для веб-сервера IIS (IIS Express), на котором будут работать все веб-приложения.

Web.config – версия файла для сайта IIS. В данном случае под сайтом понимается иерархия директорий, которая может включать в себя множество веб-приложений. Для всех приложений в конкретном сайте можно определить общие настройки через этот файл.

Web.config – версия файла для настройки конкретного веб-приложения. Именно этот файл чаще всего используется программистами в процессе работы.

Где находится Machine.Config?

Я хочу применить изменение, чтобы использовать настройки Server GC для моего приложения C # 3.5 — я могу сделать это, отредактировав файл machine.config .

Проблема только в том, что я не знаю, где это.

Как я могу найти путь к этому файлу повторяющимся образом на нескольких разных машинах

задан 24 фев ’10, 08:02

9 ответы

32-бит

64-бит

[version] должно быть равно v1.0.3705 , v1.1.4322 , v2.0.50727 or v4.0.30319 .

v3.0 и v3.5 просто содержать дополнительные сборки для v2.0.50727 так что не должно быть config\machine.config . v4.5.x и v4.6.x хранятся внутри v4.0.30319 .

Вероятно, стоит упомянуть только два каталога [версия], в которых вы найдете файл machine.config: v2.0.50727 и v4.0.30319, поскольку v3.0 и v3.5 используют .NET 2.0 CLR, а v4.5.x — добавляйте замены, поэтому не создавайте собственных каталогов фреймворков. Да, и если вам не повезло, что вы все еще используете .NET 1.1, тогда может быть каталог Framework / v1.1.4322. — Скотт Лерх

@ScottLerch В моей системе это не так. Есть v1.0.3705, v1.1.4322, v2.0.50727, v3.0, v3.5 и v4.0.30319 — Кевин Панко

@KevinPanko да, я уже упоминал предостережение относительно 1.1, но должен был также упомянуть 1.0 . просто мне не приходилось иметь дело ни с одним из них в течение длительного времени. Вы не должны найти machine.config в своих каталогах v3.0 или v3.5, если вы это сделаете, я не знаю, почему. — Скотт Лерх

Не забудьте открывать файлы .config с помощью блокнота, запущенного от имени администратора, чтобы при сохранении чего-либо система не сохраняла ваши изменения в неправильной папке на основе 32- или 64-разрядной версии. — Афшин Теймоори

@AfshinTeymoori Я не уверен на 100%, но если вы запустите блокнот в режиме без администратора, вы вообще не сможете сохранить какие-либо изменения, так как у вас нет доступа для записи в файл? (также, если вы запускаете в админке или нет, не должно меняться, если вы сохраняете в 32 или 64 бит). — Питер

Вы можете запустить это в PowerShell:

Что выводит это для .net 4:

Однако обратите внимание, что это может измениться в зависимости от того, работает ли .net как 32- или 64-разрядная версия, что приведет к \Framework\ or \Framework64\ соответственно.

How to Machine.Config

In ASP.NET, configuration information is indeed stored in either the machine.config or web.config files. The machine.config file serves as the root configuration file and is responsible for providing ASP.NET configuration settings for all applications hosted on the web server.

Configuration settings

The machine.config file is an integral part of the Microsoft .NET Framework and comes pre-installed with it. It contains default configuration settings that are applied to every web application on the server. Unlike the web.config file, which is specific to individual applications, there is only one machine.config file per machine.

The machine.config file is typically located in the directory:

Where «%version%» refers to the installed version of the .NET Framework. This file acts as a central repository for default configuration information for various application types, including web applications.

ASP.NET MVC. Конфигурационный файл Web.config. Часть 1. Основные сведения

Расположение файла Web.config

Это не просто важный, это обязательный файл для работы любого приложения. Web.config представляет собой файл, содержащий разметку формата XML. Другими словами – это обычный XML-документ. Все настройки логически разделены на группы. Каждая группа отвечает за настройку какой-то части приложения, либо за настройку веб-сервера, который обслуживает наше приложение. Уже внутри групп расположены отдельные секции, представляющие ту или иную настройку.

Группы и секции в файле Web.config

Преимущества использования файла Web.config:

  • централизованное место для всех настроек в приложении
  • приложение можно настроить максимально гибко и полно
  • возможность описать собственные настройки, характерные для текущего проекта
  • позволяет избежать проблемы жестко закодированных параметров в коде приложения
  • при изменении настроек нет необходимости перекомпилировать код
  • файл в формате стандарта XML

Чаще всего, при разработке типовых веб-приложений разработчики используют только один файл Web.config, расположенный на уровне текущего проекта. Однако этот файл является лишь частью целой иерархии конфигурационных файлов, которые использует в своей работе среда ASP.NET. Давайте посмотрим на всю цепочку файлов, составляющих эту иерархию:

Machine.config – самый первый и главный файл в иерархии. В нем определены основные настройки для среды ASP.NET, которые будут использоваться на данном физическом сервере.

Web.config – базовая версия этого файла. Здесь описаны значения по умолчанию для многих компонентов ASP.NET. Этот файл дополняет и расширяет файл machine.config, он располагается в той же директории.

ApplicationHost.config – в этом файле определены настройки а также значения по умолчанию для веб-сервера IIS (IIS Express), на котором будут работать все веб-приложения.

Web.config – версия файла для сайта IIS. В данном случае под сайтом понимается иерархия директорий, которая может включать в себя множество веб-приложений. Для всех приложений в конкретном сайте можно определить общие настройки через этот файл.

Web.config – версия файла для настройки конкретного веб-приложения. Именно этот файл чаще всего используется программистами в процессе работы.

Где находится Machine.Config?

Я хочу применить изменение, так что я могу использовать настройки GC сервера для моего приложения С# 3.5 — я могу сделать это, отредактировав файл machine.config .

Единственная проблема — я не знаю, где это.

Как я могу найти путь к этому файлу повторяемым образом на нескольких разных машинах

ОТВЕТЫ

Ответ 1

32-битный

64-битный

[version] должен быть равен v1.0.3705 , v1.1.4322 , v2.0.50727 или v4.0.30319 .

v3.0 и v3.5 просто содержат дополнительные сборки до v2.0.50727 , поэтому не должно быть config\machine.config . v4.5.x и v4.6.x сохраняются внутри v4.0.30319 .

Ответ 2

Вы можете запустить это в powershell:

Что выводит это для .net 4:

Обратите внимание, что это может измениться в зависимости от того, работает ли .net как 32 или 64 бит, что приведет к \Framework\ или \Framework64\ соответственно.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *