WebDev.WebServer40.exe已停止工作

在做新闻发布系统时遇到这个问题,如下图:webservice程序没错误,每次调试的时候总是报 webdev.webserver40.exe已停止工作

WebDev.WebServer40.exe已停止工作

这个问题,网上没有明确的解答,它说明你的站点里面存有致命错误。经过断点调试,发现了如下问题:

WebDev.WebServer40.exe已停止工作

程序进入了一个死循环,发现由于B层的CategoryManager类中“取出所有新闻类别方法”的名称和D层的CategoryDAO类中的“取出所有新闻类别方法”的名称相同(都为SelectAll()),所以在B层调用D层的方法时将cdao. SelectAll()误写为了SelectAll(),使得B层的public DateTable SelectAll()方法不断的在自己的方法体中又调用了自己,致使程序陷入了死循环。

由于陷入了死循环,导致程序不停的调用堆栈,使得WebDev.WebServer40.exe无法承受,所以一经运行或调试程序,就会使得WebDev.WebServer40.exe立刻停止工作。导致程序调试或运行失败。

WebDev.WebServer40.exe已停止工作

反思:虽然这是个马虎引起的问题,但也确实说明一个该注意的问题。就是运用分层编程时,同一条线上各层之间的方法名称最好别完全相同,应该加一些前缀或后缀标识会更加安全和规范。