Странное поведение IIS-кэширования с файлами Resx - PullRequest
2 голосов
/ 19 февраля 2010

У меня странные проблемы с сайтом, использующим .net 2.0 и IIS 6. Сайт использует файлы resx, поэтому он локализован на многих языках.В некоторых из этих файлов мы вносим изменения в resx и перекомпилируем, и эти изменения не отображаются на сайте.Когда-либо.Это происходит в основном на одном языке (арабском), но иногда и на других языках.

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

То, что я уже пробовал

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

По некоторым причинам изменения просто не принимаются.Любые идеи, помощь, будет принята с благодарностью, это один я и другие знающие люди здесь в тупик.

1 Ответ

4 голосов
/ 24 февраля 2010
  1. Дважды проверьте разрешения безопасности для измененных файлов и временных файлов.Если учетная запись веб-сервера не может их прочитать, ваши изменения не будут отображаться.

  2. Убедитесь, что у вас есть запись для "нейтрального" ресурса культуры.Если у вас нет записи в вашем основном файле resx, то компилятор не будет выдавать код для перевода этой конкретной метки / кнопки и т. Д.хорошая идея (но у вас есть это там).Иногда, что я делаю после изменения файла ресурса, чтобы открыть страницу aspx и просто добавить пробел в конец, сохранить и закрыть.Вуаля, он будет перекомпилирован.

...