Nano Hash - криптовалюты, майнинг, программирование

Как динамически добавлять правила в карту перезаписи IIS?

Многопользовательское приложение, над которым я работаю, требует динамической вставки/удаления многих правил перезаписи. С IIS мы думаем об использовании карты перезаписи.

Как динамически вставлять правила в карту перезаписи? управлять файлом webconfig.xml напрямую? Примет ли IIS изменения немедленно?

Есть ли жесткое ограничение на количество добавляемых правил?

Или... есть лучший способ?

Спасибо


Ответы:


1

Вот общие правила, которые я добавляю в свой локальный файл web.config.

<rule name="301 Redirects for ColdFusion">
  <match url=".*" />
    <conditions>
      <add input="{ColdFusion301:{REQUEST_URI}}" pattern="(.+)" />
    </conditions>
  <action type="Redirect" url="{C:1}" appendQueryString="false" redirectType="Permanent" />
</rule>
<rule name="302 Redirects for ColdFusion">
  <match url=".*" />
    <conditions>
      <add input="{ColdFusion302:{REQUEST_URI}}" pattern="(.+)" />
    </conditions>
  <action type="Redirect" url="{C:1}" appendQueryString="false" redirectType="Temporary" />
</rule>

Затем вам нужно добавить временные и постоянные правила перенаправления в отдельный файл rewritemaps.config. Мой стартовый файл выглядит так, по крайней мере, с одним (1) правилом ключ/значение.

<rewriteMaps>
    <rewriteMap name="ColdFusion301">
        <add key="/sample301" value="/" />
        <add key="/old_coffee.htm" value="/coffee.htm" />
        <add key="/Gifts/" value="/shop/" />
        <add key="/Gifts" value="/shop/" />
    </rewriteMap>
    <rewriteMap name="ColdFusion302">
        <add key="/sample302" value="/" />
    </rewriteMap>
</rewriteMaps>

Вы можете создать этот файл, используя несколько методов. Я написал CustomTag для разбора XML-файла, отображения значений в редакторе, а затем перезаписал данные обратно в XML-файл.

Чтобы IIS увидел обновленные правила, вам нужно «коснуться» dateLastModified файла web.config. Вы можете сделать это, используя setFileDate UDF setFileDate("#Rootdir#web.config", Now()).

http://www.cflib.org/udf/setFileDate

function setFileDate(filename){
    var newDate = Now();
    if (ArrayLen(Arguments) GTE 2) { newDate = arguments[2]; }
    if (not isdate(newDate)) { return false; }
    else if (newDate LT '1/1/1970') { return false; }
    if (not fileExists(filename)) { return false; }
    newDate = DateDiff("s", DateConvert("utc2Local", "January 1 1970 00:00"), newDate) * 1000;
    return CreateObject("java","java.io.File").init(JavaCast("string",filename)).setLastModified(newDate);
}
30.10.2015
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..