Путь с точкой в ​​web.config <location>

Мне нужно добавить элемент location в мой файл web.config, но путь начинается с точки (и я не думаю, что могу изменить этот путь, это для letsencrypt).

Если я даю точку, как в <location path=".well-known/acme-challenge"></location>, сайт вообще не запускается (я думаю, что файл web.config вообще не разбирается, потому что я получаю страницу с просьбой настроить customErrors, но это уже настроен и обычно работает нормально)

Если я удалю точку, как в <location path="well-known/acme-challenge"></location>, файл web.config будет правильно загружен, но, конечно, это не поможет мне настроить что-либо в нужном месте.

Конечная цель - отключить базовую аутентификацию (которая мне нужна для остальной части сайта) только по этому пути; Я даже не знаю, смогу ли я установить это в элементе <location>.

Ответы

Ответ 1

У меня была похожая проблема, когда у меня был сайт ASP.NET Forms, который заставлял аутентификацию на всех страницах.

Чтобы расширить принятый ответ, вот точный файл web.config, который я поместил в папку /.well-known (НЕ в папку /.well-known/acme-challenge):

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <!-- This will stop any redirects you have at the higher level -->
    <httpRedirect enabled="false" />

    <!-- This will stop any integrated mode settings you have at the higher level -->
    <validation validateIntegratedModeConfiguration="false"/>
  </system.webServer>

  <!-- This will allow unauthenticated users to acme-challenge subfolder -->
  <location path="acme-challenge">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
</configuration>

После добавления этого файла я смог использовать EcdsaAcmeNet для использования Lets Encrypt с сайтом в IIS.

Ответ 2

Как было предложено Ondrej Svedjdar в комментариях, решение настолько просто, что я не думал об этом.

Просто добавьте еще один файл web.config в папку, в которой он вам нужен.