2016-10-10 17 views
2

У меня есть веб-приложение ASP.NET (Sitecore), и я должен обрабатывать маршруты, которые заканчиваются на .html через ASP.NET. Обычно, как я читал, просто добавить validateIntegratedModeConfiguration="true" в /Configuration/system.WebServer/modules в web.config должно быть достаточно.Не удается передать статический файл через конвейер ASP.NET

Однако я не вижу такого поведения.

Попытка «test.html» дает мне страницу IIS 404 по умолчанию, а код, который должен запускаться, не работает.

Бассейн приложений уже включен в интегрированный режим, а свойство validateIntegratedModeConfiguration уже установлено на true. Что мне здесь не хватает?

+0

Как вы обрабатываете свою маршрутизацию? Вы встраиваетесь в конвейеры Sitecore? Не могли бы вы опубликовать несколько примеров кода. Это может быть связано с тем, что 'html' не является [Разрешенным расширением в config] (http://stackoverflow.com/a/39471240/661447). – jammykam

+1

«Разрешенные расширения в конфигурации» заставили меня искать результат showconfig.aspx, и там я нашел соответствующий процессор в конвейере PreProcessRequest. Я добавил html в список разрешенных, и он сработал. Если вы передадите свой комментарий в ответ, я соглашусь с ним :) – Yiangos

ответ

2

Если ваши маршруты были зарегистрированы с использованием конвейеров Sitecore, вам необходимо будет указать html в список Allowed extensions. Зафиксируйте конфигурацию, как показано ниже, чтобы включить любые расширения, которые необходимо обработать:

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/"> 
    <sitecore> 
     <preprocessRequest> 
     <processor type="Sitecore.Pipelines.PreprocessRequest.FilterUrlExtensions, Sitecore.Kernel"> 
      <param desc="Allowed extensions (comma separated)">aspx, ashx, asmx, html</param> 
     </processor> 
     </preprocessRequest>  
    </pipelines>  
    </sitecore> 
</configuration>