У меня стандартное исключение тайм-аута в моей производственной среде, из-за которого через 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?
Большое спасибо заранее.
Обновление: Я провел тест на этом, и нет, он не работает, поэтому у меня нет и запасного решения. :)