Почему моей машине был бы нужен полный сброс IIS для наблюдения изменений кода в проекте ASP.NET?

Я заметил, что для проекта веб-сайта VS2010 C#, я продолжаю работать, кажется, всегда нужен iisreset, чтобы смочь видеть изменения, которые я вношу в код позади файлов в проекте. Я замечаю, что это не имеет правильной версии блока, потому что то, когда я пытаюсь отладить Visual Studio, не позволит мне поместить точки останова в файлы кода, которые я изменил.

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

Могло бы быть что-то не настроенное неправильно на моей машине или в проекте заставить это произойти?

6
задан Joel Coehoorn 9 July 2010 в 17:16
поделиться

2 ответа

- Я предполагаю, что вы используете asp.net 4-

В web.config это значения для отладки, которые делают меньше компиляций

<compilation debug="true" batch="false" optimizeCompilations="true"
  defaultLanguage="C#" targetFramework="4.0">

Вы можете изменить batch, или optimizeCompilations, чтобы посмотреть, решилась ли ваша проблема.

Теперь я расскажу вам о другой причине, которую я заметил.

Когда у вас есть функция с параметрами по умолчанию, например

foo(int cValueA, int cValueB = 23)

и по какой-то причине вы меняете их на

foo(int cValueA, int cValueB = 23, int cValueC = 34)

или на

foo(int cValueA)

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

1
ответ дан 17 December 2019 в 22:10
поделиться

IIS оптимизирован для производственной среды, в которой развернутые файлы не меняются во время выполнения. В этом случае IIS должен регулярно опрашивать и перезагружать библиотеки DLL во время выполнения. Что является редким случаем в производственной рекламе, также существенно ухудшает производительность. Обычно во время разработки используйте тестовый веб-сервер, поставляемый с VS2010. Это оптимизировано для разработки. Используйте правильный инструмент для правильной цели.

0
ответ дан 17 December 2019 в 22:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: