0

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

Im использует new System.Net.WebClient().DownloadString("http://url");, но страницы не будут кэшироваться при использовании этого вызова.

атрибут

кэширование
[ChildActionOutputCache(("CacheAll"), Location = OutputCacheLocation.Server)] 

Атрибут Функция

public class ChildActionOutputCacheAttribute : OutputCacheAttribute 
    { 
     public ChildActionOutputCacheAttribute(string cacheProfile) 
     { 
      var settings = (OutputCacheSettingsSection)WebConfigurationManager.GetSection("system.web/caching/outputCacheSettings"); 
      var profile = settings.OutputCacheProfiles[cacheProfile]; 
      Duration = profile.Duration; 
      VaryByParam = profile.VaryByParam; 
      VaryByCustom = profile.VaryByCustom; 
     } 
    } 

web.config свойства для атрибута

<caching> 
     <outputCacheSettings> 
     <outputCacheProfiles> 
      <add name="CacheAll" 
       duration="43200" 
       location="Server" 
       varyByParam="*"/> 
     </outputCacheProfiles> 
     </outputCacheSettings> 
    </caching> 
+1

Какое кеширование вы используете? – SLaks

+0

Маркировка метода контроллера с атрибутом outputcache с атрибутом costum. – user473104

ответ

0

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

В запросе, который вы делаете, нет куки-файлов, ответ с сервера содержит новые файлы cookie, поэтому он не кэширует вывод.

Используйте код в этом ответе, чтобы сделать запрос, и все будет кэшировать OK: https://stackoverflow.com/a/3892075

То, что я должен был сделать запрос к домашней странице моего приложения. Это привело к сортировке сеанса, с возвратом сессии cookie. Эти куки были добавлены к последующим запросам (на страницы, которые я хотел сохранить в кеше), и все работало, как ожидалось.

Смежные вопросы