«Предотвращение выполнения данных» убивает (VS2008) локальный сервер разработки ASP.Net (он же Кассини) в Vista 64 - PullRequest
3 голосов
/ 21 августа 2008

Иногда я обнаруживаю, что во время отладки приложения ASP.Net (написанного в Visual Studio 2008, работающего в 64-разрядной версии Vista) локальный сервер разработки ASP.Net (т.е. «Кассини») перестает отвечать.

Часто появляется сообщение о том, что «Предотвращение выполнения данных (DEP)» убило WebDev.WebServer.exe

Журналы событий просто говорят мне, что «WebDev.WebServer.exe перестал работать»

Я слышал, что эта «проблема» чаще возникает в 64-битной Vista, потому что DEP включен по умолчанию. Следовательно, отключение DEP может «решить» проблему.

Но мне интересно:

Есть ли известная ошибка / ситуация с Cassini, которая заставляет DEP завершить процесс?

Какова же практическая опасность отключения функции предотвращения выполнения данных?

Ответы [ 5 ]

3 голосов
/ 21 августа 2008

Единственный способ узнать наверняка - это покопаться в источнике Cassini и посмотреть, есть ли области, где он генерирует код в куче, а затем выполняет его без очистки флага NX.

Однако, вместо того, чтобы сделать это, почему бы не использовать IIS?

EDIT:

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

2 голосов
/ 21 августа 2008

Ты на горизонте, мне стало лучше (7), Кассини осталась паршивой.

Так что просто запустите это приложение на iis с заголовком хоста и записью файла hosts.

1 голос
/ 21 августа 2008

Использование IIS в Visual Studio - это не то, что было раньше в 1.1 / VS02 / 03 днях. Есть много веских причин предпочитать IIS серверу Cassini (статьи Доминик Байер ):

Кассини считается вредным
Еще одна причина, по которой я бы не рекомендовал Кассини

Доминик - «человек», когда дело доходит до IIS и безопасности.

При использовании IIS для веб-приложения я всегда сначала создаю приложение в IIS, указываю на нужную папку, а затем получаю VS для создания проекта. Это означает, что вы не загромождаете c: \ inetpub \ wwwroot своими веб-приложениями.

Конечно, теперь у нас есть IISExpress, который, если вы ориентируетесь на IIS7.x, является очевидным выбором для разработки приложений ASP.NET в Visual Studio.

1 голос
/ 21 августа 2008

При необходимости вы можете исключить некоторые программы из DEP.

Как Джонатан

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

0 голосов
/ 21 августа 2008

Спасибо за ответы. Я полагаю, что в эпоху .net 1.x у меня появилось такое отвращение к IIS, что я отказывался рассматривать его повторное использование - до сих пор.

в сторону: выбирая между двумя одинаково приемлемыми ответами ЧанЧана и Джонатана, я произвольно пометил Джонатана как «принятый», потому что а) он вошел первым и б) его повтор в настоящее время ниже.

...