偶尔,我发现在调试ASP.Net应用程序(用Visual Studio 2008编写,在Vista 64位上运行)时,本地ASP.Net开发服务器(即“Cassini”)停止响应。
经常会出现一条消息,告诉我“数据执行保护(DEP)”已经杀死了WebDev.WebServer.exe
事件日志只是告诉我“WebDev.WebServer.exe已停止工作”
我听说这个'问题'在Vista 64位上经常出现,因为DEP默认开启。因此,关闭DEP可能会“解决”问题。
但我想知道:
Cassini是否存在导致DEP杀死进程的已知错误/情况?
或者,禁用数据执行保护的实际危险是什么?
答案 0 :(得分:3)
唯一明确的方法是挖掘Cassini源代码并查看是否有任何区域在堆上生成代码然后执行它而不清除NX标志。
但是,为什么不使用IIS?
,而不是这样做编辑:
禁用DEP的危险在于您打开了安全漏洞。 DEP的工作原理是不允许执行堆上任意生成的代码。这有助于防止恶意软件程序将代码插入合法程序的数据段中。
答案 1 :(得分:2)
你正在观看,iis变得更好(7),卡西尼仍然很糟糕。
所以只需在iis上使用主机头和主机文件条目启动此应用程序。
答案 2 :(得分:1)
答案 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)他的代表目前较低。