2011-06-09 196 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