【问题标题】:webapp hangs around in memory, WebDev.WebServer40.EXE not being torn downwebapp在内存中徘徊,WebDev.WebServer40.EXE没有被拆除
【发布时间】:2011-09-18 09:07:44
【问题描述】:

我正在 Visual Studio 2010 中运行/调试一个 asp.net mvc3 应用程序。

当我在 Visual Studio 中重新运行应用程序时,不会调用任何本质上的静态内容。

(或者甚至像Application_Start()这样简单的东西)

每次我想“正确”运行 webapp 时,我都需要在任务管理器中杀死 WebDev.WebServer40.EXE,然后再次调用任何静态内容。

q1) 这是否正常,如果是,为什么?
q2) 如果不是,那么我希望每次重新启动调试会话时都会重新启动 ASP.NET 开发服务器。 如何开启此功能?

更新: 重新编译有时会导致 Application_Start 被调用,但并非总是如此。

我已经在预编译中调用了一个批处理文件,例如

kill_WebServer40.bat

其中包含

taskkill /F /IM WebDev.WebServer40.EXE
exit 0

如果您将这两个命令直接嵌入到预构建文本区域中,如果 WebServer 尚未运行,您的编译将失败。 Thislinked 帮助解决了这个问题。

令人惊讶的是,之前/之前没有讨论过这个问题 - 在开发应用程序时,就好像您有任何静态数据/缓存并且想要“干净”地运行应用程序一样,您会遇到这个问题。

【问题讨论】:

    标签: asp.net visual-studio-2010 asp.net-mvc-3


    【解决方案1】:

    是的,这很正常。如果您触摸 web.config 或重新编译,它将重新启动。停止调试后,开发服务器会继续在后台运行应用程序。

    您可以通过右键单击图标并选择停止来停止任务托盘中的开发服务器。

    没有办法在您每次点击调试时强制重新启动应用程序。这仅在您正在调试应用程序启动的边缘情况下才需要。只需在调试前点击重建,它就会产生预期的效果。

    【讨论】:

    • 触摸 web.config 或重新编译都不会导致 Web 服务器重新启动。 (始终如一)
    • 其中任何一个都应该导致您的应用程序重新启动(而不是服务器),并且您的 Aplication_Start 断点应该被命中。重新编译是指重建,而不是构建。
    猜你喜欢
    • 2011-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多