Проблема отладки ASP.NET

Я создаю веб-сайты в Visual Studio 2010. Недавно я перешел на новую машину разработчика с 64-разрядной Windows 7. Теперь, когда я вношу изменение на веб-страницу, мне нужно остановить отладку, убить cassini и снова начать отладку, прежде чем новый код вступит в силу. В XP такой проблемы не было.

То, что я пробовал ...

  • compilation debug = "true" в файле конфигурации
  • параметры-> Отладка-> Изменить и продолжить.

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

РЕДАКТИРОВАТЬ

У одного из моих коллег такой проблемы нет. У него такая же установка, как и у меня, с использованием того же проекта, той же конфигурации сборки (любой процессор).


person Steve Johnson    schedule 16.02.2011    source источник


Ответы (3)


Причина в переходе с 32-битной ОС на 64-битную. Возможность изменять код во время работы приложения уникальна для 32-битного кода. В 64-битном исполняемом файле эта возможность удалена.

Это называется «Изменить и продолжить». См. Этот вопрос для хорошего объяснения того, почему это не будет работать с 64-битным исполняемым файлом:

Почему не изменить и продолжить работу в x64 CLR ?

РЕДАКТИРОВАТЬ: Пояснение:

Это проблема не в ОС, а в сборке вашего кода. Если у вас установлена ​​конфигурация сборки «Any CPU», она будет работать под архитектурой вашего компьютера (x64 в вашем случае). Вы должны иметь возможность принудительно установить это на x86 и иметь возможность использовать «Изменить и продолжить».

person Kyle Trauberman    schedule 16.02.2011
comment
Я тоже читал это, но в моем диалоговом окне диспетчера конфигурации я не могу понять, как изменить конфигурацию проекта моего веб-сайта на что-либо, кроме Debug / Any CPU. У меня есть несколько проектов кода библиотеки в одном решении - я могу изменить платформу на x86 на них, но у меня есть только один вариант для веб-сайта. Кроме того, разработчик в следующем кубе, тот же проект / vs / win7 / machine может редактировать и продолжать! Его конфигурация сборки установлена ​​на Any CPU! - person Steve Johnson; 17.02.2011
comment
Если вы перейдете к Build > Configuration Manager в Visual Studio, вы можете изменить конфигурацию сборки для каждого проекта отдельно. Если вы не видите вариант для x86 в раскрывающемся списке платформы, выберите «Создать». Я не гарантирую, что изменение платформы на x86 позволит «Изменить и продолжить», но это хорошее место для начала. - person Kyle Trauberman; 17.02.2011
comment
В диспетчере конфигурации у моего проекта «веб-сайт» нет других опций, кроме Any CPU. Нет новой опции. Я знаю, о чем вы говорите - у меня есть эти варианты для других проектов в решении, но не для самого веб-сайта. Это потому, что это веб-сайт, а не веб-приложение? - person Steve Johnson; 17.02.2011
comment
Ага. Я только что это проверил. У меня появилась возможность, когда я создал проект веб-приложения, но не когда я создал веб-сайт. - person Kyle Trauberman; 17.02.2011

64-битные приложения нельзя динамически изменять во время отладки. Для этого вам нужно изменить цель сборки «x86». Легкий!

Просто поменяйте обратно (если действительно нужны 64-битные сборки).

person Nicholas Carey    schedule 16.02.2011

Как оказалось, это была моя ошибка ... Я столкнулся с ужасной проблемой «Достигнут лимит сетевых команд BIOS». Я нашел сообщение, в котором рекомендовалось выполнить взлом regedit «HKLM \ Software \ Microsoft \ ASP.NET \ FCNMode = 1», ну, это в основном отключает уведомления об изменении файлов. Изменение этого значения на 2 и применение изменений, рекомендованных в базе знаний 810886, устранили обе проблемы.

person Steve Johnson    schedule 24.02.2011