“数据执行预防”在Vista 64上杀死(VS2008)本地ASP.Net开发服务器(又名卡西尼)

时间:2008-08-21 04:50:14

标签: asp.net cassini dep

偶尔,我发现在调试ASP.Net应用程序(用Visual Studio 2008编写,在Vista 64位上运行)时,本地ASP.Net开发服务器(即“Cassini”)停止响应。

经常会出现一条消息,告诉我“数据执行保护(DEP)”已经杀死了WebDev.WebServer.exe

事件日志只是告诉我“WebDev.WebServer.exe已停止工作”

我听说这个'问题'在Vista 64位上经常出现,因为DEP默认开启。因此,关闭DEP可能会“解决”问题。

但我想知道:

Cassini是否存在导致DEP杀死进程的已知错误/情况?

或者,禁用数据执行保护的实际危险是什么?

5 个答案:

答案 0 :(得分:3)

唯一明确的方法是挖掘Cassini源代码并查看是否有任何区域在堆上生成代码然后执行它而不清除NX标志。

但是,为什么不使用IIS?

,而不是这样做

编辑:

禁用DEP的危险在于您打开了安全漏洞。 DEP的工作原理是不允许执行堆上任意生成的代码。这有助于防止恶意软件程序将代码插入合法程序的数据段中。

答案 1 :(得分:2)

你正在观看,iis变得更好(7),卡西尼仍然很糟糕。

所以只需在iis上使用主机头和主机文件条目启动此应用程序。

答案 2 :(得分:1)

如果需要,您可以将某些程序排除在DEP之外。

作为Jonathan

提到这确实会打开应用程序可能存在的任何漏洞。

答案 3 :(得分:1)

在Visual Studio中使用IIS并不是它曾经在1.1 / VS02 / 03天的痛苦。有很多理由喜欢IIS而不是Cassini服务器(Dominick Baier下的文章):

  

Cassini considered harmful
  Another Reason why I would not recommend Cassini

当谈到IIS和安全问题时,Dominick是'男人'。

将IIS用于Web应用程序时,我总是首先在IIS中创建应用程序,将其指向我的首选文件夹,然后获取VS以创建项目。这意味着您最终不会使用您的网络应用程序混淆c:\ inetpub \ wwwroot。

当然,现在我们有IISExpress,如果您的目标是IIS7.x,那么它是在Visual Studio中开发ASP.NET应用程序的明显选择。

答案 4 :(得分:0)

感谢您的回答。我想我在.net 1.x时代对IIS产生了这样的厌恶,我拒绝考虑重新使用它 - 直到现在。

:在ChanChan和Jonathan两个同样可以接受的答案之间进行选择时,我任意将Jonathan的标记为'已接受',因为a)他先进入并且b)他的代表目前较低。