Search code examples
asp.netcassinidep

"Data Execution Prevention" kills (VS2008) local ASP.Net Development Server (aka Cassini) on Vista 64


Occasionally, I find that while debugging an ASP.Net application (written in visual studio 2008, running on Vista 64-bit) the local ASP.Net development server (i.e. 'Cassini') stops responding.

A message often comes up telling me that "Data Execution Prevention (DEP)" has killed WebDev.WebServer.exe

The event logs simply tell me that "WebDev.WebServer.exe has stopped working"

I've heard that this 'problem' presents itself more often on Vista 64-bit because DEP is on by default. Hence, turning DEP off may 'solve' the problem.

But i'm wondering:

Is there a known bug/situation with Cassini that causes DEP to kill the process?

Alternatively, what is the practical danger of disabling Data Execution Prevention?


Solution

  • The only way to know for sure would be to dig through the Cassini source and see if there are any areas where it generates code on the heap and then executes it without clearing the NX flag.

    However, instead of doing that, why not use IIS?

    EDIT:

    The danger of disabling DEP is that you open up security holes. DEP works by not allowing arbitrary generated code on the heap to be executed. This helps prevent malware programs from inserting code into the data segments of legit programs.