#asp.net #visual-studio-2008 #iis
#asp.net #visual-studio-2008 #iis
Вопрос:
У меня есть веб-приложение в Visual Studio 2008 с веб-службой и парой веб-форм. Когда я пытаюсь выполнить отладку, ни одна из моих точек останова не доступна; если я наведу на них курсор мыши, я увижу:
«Точка останова не будет достигнута. Исходный код отличается от исходной версии. «
Список загруженных модулей отладки включает старую версию 1.0. * моей сборки. С тех пор я изменил ее на 1.1.0.0, но эта версия никогда не загружается. Я попытался остановить IIS и удалить файлы из временного ASP.NET Файлы, но когда я перезапускаю его, версия 1.0. * возвращается обратно! Выходные данные сборки определенно 1.1.0.0, а не 1.0. *, так откуда же это может быть? То же самое происходит, когда я использую сервер разработки VS вместо IIS.
Спасибо
Комментарии:
1. Вероятно, вы могли бы сослаться на сборку 1.0 из GAC или другого местоположения, внешнего по отношению к источнику проекта. Найдите его в дереве в разделе «ссылки» и проверьте путь.
Ответ №1:
Я видел, как это происходит, когда DLL кэшируется во временном ASP.NET Папка с файлами. Попробуйте выполнить «Перестроить все», и если это все еще происходит, удалите DLL из папки temp или полностью очистите содержимое папки.
Комментарии:
1. К сожалению, это не сработало. Я также пытался удалить и воссоздать виртуальный каталог в IIS.
2. Возможно, у вас есть устаревшие ссылки?
3. Нет, я только вносил небольшие изменения в код веб-службы. Не изменил ни одной ссылки.
4. Вы используете веб-ссылку на веб-службу?
5. Это странно: я нашел копию выходных данных сборки в корне каталога bin по умолчанию, и это была версия 1.0. *. В корне bin не должно быть выходных данных сборки, только в подкаталоге x86 / Debug — понятия не имею, как он туда попал. Когда я полностью удалил каталоги bin и obj, а затем перестроил, это сработало. Спасибо!
Ответ №2:
У меня была очень похожая проблема:
- Веб-приложение, ссылающееся на сборку, содержащую ресурсы.
- При использовании культуры, отличной от стандартной (с ресурсами, встроенными в satellite *.resources.сборка dll), некоторые ресурсы использовались нормально, но некоторые возвращались к языку по умолчанию.
- Удаление Temp ASP.NET файлы или Очистить Build не помогли
Проблема в том, что большинство инструментов, которые вы можете использовать для решения проблем с загрузкой сборки diag (Process Explorer для списка загруженных сборок и путей, fuslogvw для журнала привязки сборок), вообще не показывают вспомогательные сборки.
Но, наконец, я обнаружил, что в папке моего веб-приложения bin находится старая версия сборки satellite (до сих пор не знаю, как она туда попала), и она получала приоритет во время проверки сборки загрузки…
Ответ №3:
Похоже, это срабатывает, когда файлы LastWriteTime не обновляются. Я могу надежно воспроизвести это, взяв две совершенно отдельные сборки dll с точно таким же LastWriteTime и развернув их в IIS одну за другой. Если я затем использую GNU touch для обновления файлов LastWriteTime, IIS выбирает текущую правильную версию.