在生成时自动停止/重新启动ASP.NET开发服务器
有没有办法自动停止ASP.NET开发服务器(Cassini),只要我在VS2008中进行构建/重建(然后在需要的时候显然会重新启动它)? 也许有一些隐藏的配置设置在某个地方? 或者至少以某种方式将其作为后期制作活动来完成?
对于一些背景,问题是我使用Spring.NET进行依赖注入等,但它在Application Start上加载它的单例,这意味着如果我更改任何与Spring相关的代码/配置,我必须停止开发服务器,所以它会再次开始下一次调试/运行,确保再次触发Application Start事件。 换句话说,即使你改变了一堆代码/配置然后再次开始调试,它实际上并没有再次启动,因为它已经在运行,所以你的新代码没有被使用。
解决方法:在Visual Studio中使用ASP.Net Web Server调试Global.aspx.cs Application_Start()
在Web服务器项目上启用“编辑并继续”为我工作。 当你停止调试时它没有关闭cassini,但是当你开始调试时它确实会重新启动cassini。
所以我最终得到了一个基于Magnus'回答的解决方法,但是使用了下面这个相对简单的宏(为什么他们强迫你使用VB作为宏?我觉得都很脏):
Imports System
Imports System.Diagnostics
Public Module KillCassini
Sub RestartDebug()
If (DTE.Debugger.DebuggedProcesses.Count > 0) Then
DTE.Debugger.Stop(True)
End If
KillCassini()
DTE.Debugger.Go(False)
End Sub
Sub KillCassini()
Dim name As String = "WebDev.WebServer"
Dim proc As Process
For Each proc In Process.GetProcesses
If (proc.ProcessName.StartsWith(name)) Then
proc.Kill()
End If
Next
End Sub
End Module
基本上,如果调试器当前正在运行,它将停止它,然后终止名为“WebDev.WebServer”的所有应该是所有Cassini实例的进程,然后再次启动调试器(这将隐式启动Cassini)。 我正在使用proc.Kill()
因为proc.CloseMainWindow()
或proc.WaitForExit(1000)
似乎都不起作用。
无论如何,一旦你有了你的宏,你可以将其分配给键盘快捷方式,或创建自定义工具栏按钮来运行它。
我只是打开一个命令行(runas admin)
运行以下。 它应该杀死所有人
Taskkill /IM WebDev.WebServer40.EXE /F
链接地址: http://www.djcxy.com/p/85077.html
上一篇: Automatically stop/restart ASP.NET Development Server on Build
下一篇: Retrieving Video Card Memory on cards with more than 4GB of memory