Размещение файла web.config в директории просмотра - PullRequest
0 голосов
/ 09 июня 2009

У меня стандартное исключение тайм-аута в моей производственной среде, из-за которого через 90 секунд поток будет прерван. Для подавляющего большинства моего сайта это не проблема.

Однако мой генератор карты сайта является исключением из правила.

Поскольку он опирается на маршруты, созданные в приложении, я решил создать его внутри проекта, так как он загружает все маршруты из приложения, а затем эффективно использует настраиваемое действие Html.Action для создания каждого маршрута.

Поскольку на создание всей карты сайта уходит довольно много времени (по крайней мере, 5 минут), я получаю YSOD до того, как он сможет завершиться. Теперь в webforms я просто создал бы web.config в каталоге и симпатичный небольшой обработчик для этой страницы, используя элемент location :

<configuration>
  <location path="sitemapgenerator">
    <system.web>
      <httpRuntime executionTimeout="600" /><!-- Ten minutes -->
    </system.web>
  </location>
</configuration>

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

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

Может кто-нибудь дать мне какие-либо предложения по этому поводу, и сработает ли этот метод web.config?

Большое спасибо заранее.

Обновление: Я провел тест на этом, и нет, он не работает, поэтому у меня нет и запасного решения. :)

1 Ответ

3 голосов
/ 09 июня 2009

Вы пытались установить свойство scriptTimeout при инициализации генератора карты сайта?

Server.ScriptTimeout = 600;

...