2011-06-09 144 views
3

我在Application_Start和Application_End(global.asax)中实现了一些代码。 当我启动ASP.NET Developer Server时,Application_Start正常运行。 当我更改web.config文件时,Application_Start方法再次被调用,但Application_End永远不会被调用。Visual Studio在调试时不调用Application_End

有人知道我怎么能强迫Application_End第二呼叫的Application_Start

+0

你预计什么时候被称为? – Oded 2011-06-09 19:06:37

+0

@Oded我更改web.config并保存后。 – Makah 2011-06-09 19:52:28

+0

只有当我在事件中添加我的复杂代码时,才会出现问题。如果我只是添加一些跟踪事件被正确调用。 – Makah 2011-06-09 19:59:31

回答

0

我的代码在Application_Start中打开一个服务器套接字,因此Visual Studio无法重新启动我的应用程序而不关闭它。 为了安全起见,不要重新启动我的应用程序。

只有当他知道没有人受到影响时,VS才会调用Application_End。 在我的情况下,我可以使用套接字发送或接收数据。

0

之前运行过Application_End不会被调用,或者它在Application_End一个破发点没有被打?

Application_End在应用程序池停止时调用。

当您正在调试时,您将连接到应用程序池进程。

可能发生的情况是在调用Application_End之前,调试器失去与应用程序池的联系,因此您没有达到中断点。

+0

就像我在一个评论中说的,这个问题很奇怪。 当我在Start和End事件中添加我的代码(打开套接字等)时,Start事件只被调用一次。 当我只添加一个Trace.WriteLine()并保存时,web.config,End和Start事件被正常调用。 – Makah 2011-06-09 21:02:41

+0

然后问题是你复杂的代码是什么。尝试把它放在几行,看看它何时停止工作。 – 2011-06-09 21:20:49

+0

我打开了一些侦听器和套接字。但是,当我保存web.config文件时没有人使用套接字。 问题是,当VS决定调用Applicaton_Start时? – Makah 2011-06-11 14:35:08