Добавление machineKey в web.настройка на сайтах веб-ферм
мы (наш ИТ-партнер действительно) недавно изменили некоторые DNS для веб-сайта фермы у нас есть, так что два производственных сервера имеют циклическое переключение DNS между ними. До этого переключателя у нас не было проблем с WebResource.axd
файлы. Начиная с коммутатора, когда мы нажимаем живой общедоступный URL, мы получаем ошибку:
CryptographicException
Padding недействителен и не может быть удален.
когда мы ударяем по определенным серверам сами они загружаются нормально. Я исследовал проблему, и, похоже, поскольку они разделяют активы между двумя серверами, нам нужно иметь согласованный machineKey
на web.config
для каждого сервера, чтобы они могли шифровать и дешифровать последовательно между ними. Мои вопросы:
- могу ли я создать
machineKey
через инструмент на сервер, или мне нужно написать код для этого? - мне просто нужно добавить
machineKey
доweb.config
на каждом сервере или вы думаете, что мне нужно сделать что-нибудь еще, чтобы заставить два сервера работать вместе? (Обаweb.config
в настоящее время не имеютmachineKey
)
3 ответов
это должно ответить:
как настроить MachineKey в ASP.NET 2.0-рекомендации по развертыванию веб-фермы
Соображения По Развертыванию Веб-Фермы
при развертывании приложения в веб-ферме необходимо убедиться, что файлы конфигурации на каждом сервере имеют одинаковое значение для validationKey и decryptionKey, которые используются для хэширования и расшифровка соответственно. Это необходимо, потому что вы не можете гарантия какой сервер будет обрабатывать последующие запросы.
С вручную сгенерированными значениями ключей настройки должны быть похож на следующий пример.
<machineKey validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7 AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B" decryptionKey="ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F" validation="SHA1" decryption="AES" />
если вы хотите изолировать приложения от других приложений на тот же сервер, поместите в Сеть.файл config для каждого приложение на каждом сервере фермы. Убедитесь, что вы используете отдельные значения ключей для каждого приложения, но дублировать ключи каждого приложения во всех серверы в ферме.
короче говоря, чтобы настроить ключ машины, обратитесь к следующей ссылке: настройка ключа машины-Orchard Documentation.
настройка ключа компьютера с помощью диспетчера IIS
если у вас есть доступ к консоли управления IIS на сервере, где Orchard установлен, это самый простой способ настроить машинный ключ.
запустите консоль управления и выберите веб-узел. Открыть этот конфигурация ключа машины:
панель управления ключом машины имеет следующие настройки:
снимите галочку "автоматически генерировать во время выполнения" для проверки ключ и ключ расшифровки.
нажмите "Создать ключи" в разделе "Действия"в правой части панели.
Нажмите Кнопку "Применить".
и добавьте следующую строку в во всех webservers
под system.web
тег, если он не существует.
<machineKey
validationKey="21F0SAMPLEKEY9C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7
AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"
decryptionKey="ABAASAMPLEKEY56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F"
validation="SHA1"
decryption="AES"
/>
пожалуйста, убедитесь, что у вас есть постоянная резервная копия ключей машины и
Если вы используете IIS 7.5 или более поздней версии, вы можете создать ключ компьютера из IIS и сохранить его непосредственно в интернете.config, в веб-ферме вы просто копируете новый веб-сайт.config для каждого сервера.
- Откройте Диспетчер IIS.
- Если вам нужно создать и сохранить MachineKey для всех ваших приложений, выберите имя сервера в левой панели, в этом случае вы будете изменять корневой веб.файл конфигурации (который помещается в папку .NET framework). Если ваш намерение состоит в том, чтобы создать MachineKey для определенного веб-сайта/приложения, затем выберите веб-сайт / приложение из левой панели. В этом случае вы будете изменять
web.config
файл вашего приложения. - дважды щелкните значок ключа машины в ASP.NET настройки в средней панели:
- MachineKey раздел будет считан из файла конфигурации и будет показан в пользовательском интерфейсе. Если вы не настроили определенный MachineKey и он генерируется автоматически, вы увидите следующие варианты:
- теперь вы можете нажать кнопку Создать ключи на правой панели для генерации случайных MachineKeys. При нажатии кнопки Применить, все настройки будут сохранены в папке .
полную информацию можно увидеть @ самый простой способ генерировать MachineKey-советы и рекомендации: ASP.NET, разработка IIS и .NET...
обязательно учитесь у заполнение oracle asp.net уязвимость это только что произошло (вы применили патч, верно? ...) и использовать защищенные разделы для шифрования ключа машины и другие конфиденциальные данные.
альтернативный вариант-установить его в веб-уровне.config, поэтому его даже нет в папке веб-сайта.
чтобы создать его, сделайте это так же, как связанная статья в ответе Дэвида.