Предотвращение выполнения данных убивает (VS2008) локальный сервер разработки ASP.Net (он же Cassini) в Vista 64

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

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

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

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

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

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

В чем же практическая опасность отключения предотвращения выполнения данных?


person Leon Bambrick    schedule 21.08.2008    source источник


Ответы (5)


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

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

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

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

person FlySwat    schedule 21.08.2008

Вы находитесь в перспективе, мне стало лучше (7), кассини остался дрянным.

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

person DevelopingChris    schedule 21.08.2008

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

Как Джонатан

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

person Brian Leahy    schedule 21.08.2008
comment
webdev.webserver.exe нельзя удалить из DEP в Windows - person pauliephonic; 30.06.2009

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

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

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

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

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

person Kev    schedule 21.08.2008

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

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

person Leon Bambrick    schedule 21.08.2008