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

StackOverflow https://stackoverflow.com/questions/19349

  •  09-06-2019
  •  | 
  •  

Вопрос

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

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

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

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

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

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

Альтернативно, в чем практическая опасность отключения Data Execution Prevention?

Это было полезно?

Решение

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

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

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

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

Другие советы

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

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

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

Как Джонатан

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top