Добавление machineKey в web.настройка на сайтах веб-ферм

мы (наш ИТ-партнер действительно) недавно изменили некоторые DNS для веб-сайта фермы у нас есть, так что два производственных сервера имеют циклическое переключение DNS между ними. До этого переключателя у нас не было проблем с WebResource.axd файлы. Начиная с коммутатора, когда мы нажимаем живой общедоступный URL, мы получаем ошибку:

CryptographicException

Padding недействителен и не может быть удален.

когда мы ударяем по определенным серверам сами они загружаются нормально. Я исследовал проблему, и, похоже, поскольку они разделяют активы между двумя серверами, нам нужно иметь согласованный machineKey на web.config для каждого сервера, чтобы они могли шифровать и дешифровать последовательно между ними. Мои вопросы:

  1. могу ли я создать machineKey через инструмент на сервер, или мне нужно написать код для этого?
  2. мне просто нужно добавить 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 установлен, это самый простой способ настроить машинный ключ.

запустите консоль управления и выберите веб-узел. Открыть этот конфигурация ключа машины: The IIS web site configuration panel

панель управления ключом машины имеет следующие настройки:

The machine key configuration panel

снимите галочку "автоматически генерировать во время выполнения" для проверки ключ и ключ расшифровки.

нажмите "Создать ключи" в разделе "Действия"в правой части панели.

Нажмите Кнопку "Применить".

и добавьте следующую строку в во всех webservers под system.web тег, если он не существует.

<machineKey  
    validationKey="21F0SAMPLEKEY9C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7
                   AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"           
    decryptionKey="ABAASAMPLEKEY56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F"
    validation="SHA1"
    decryption="AES"
/>

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


Если вы используете IIS 7.5 или более поздней версии, вы можете создать ключ компьютера из IIS и сохранить его непосредственно в интернете.config, в веб-ферме вы просто копируете новый веб-сайт.config для каждого сервера.

  1. Откройте Диспетчер IIS.
  2. Если вам нужно создать и сохранить MachineKey для всех ваших приложений, выберите имя сервера в левой панели, в этом случае вы будете изменять корневой веб.файл конфигурации (который помещается в папку .NET framework). Если ваш намерение состоит в том, чтобы создать MachineKey для определенного веб-сайта/приложения, затем выберите веб-сайт / приложение из левой панели. В этом случае вы будете изменять web.config файл вашего приложения.
  3. дважды щелкните значок ключа машины в ASP.NET настройки в средней панели:
  4. MachineKey раздел будет считан из файла конфигурации и будет показан в пользовательском интерфейсе. Если вы не настроили определенный MachineKey и он генерируется автоматически, вы увидите следующие варианты:
  5. теперь вы можете нажать кнопку Создать ключи на правой панели для генерации случайных MachineKeys. При нажатии кнопки Применить, все настройки будут сохранены в папке .

полную информацию можно увидеть @ самый простой способ генерировать MachineKey-советы и рекомендации: ASP.NET, разработка IIS и .NET...


обязательно учитесь у заполнение oracle asp.net уязвимость это только что произошло (вы применили патч, верно? ...) и использовать защищенные разделы для шифрования ключа машины и другие конфиденциальные данные.

альтернативный вариант-установить его в веб-уровне.config, поэтому его даже нет в папке веб-сайта.

чтобы создать его, сделайте это так же, как связанная статья в ответе Дэвида.