2011-10-29 54 views
0

執行自定義代碼函數只有一次我想在Web服務的啓動只有一次執行一些代碼。 我想用void Application_Start(object sender, EventArgs e),但我有我的代碼如何在Web服務

`Request.ServerVariables["SERVER_SOFTWARE"];` 

,我得到異常Request is not available in this context似乎對象可能還不存在becase的應用纔剛剛開始,而不是處理請求。

任何想法,我怎麼能解決這個問題呢? 我怎麼能執行我的代碼只有一次。

回答

3

使用初始化爲false的靜態布爾字段來標記函數是否被調用,並將其設置爲true它被調用的函數(最好在函數結束時完成)。

如果值爲false,則只執行函數中的代碼。

做適當的鎖定,以避免可能的競爭條件(謝謝亞希亞)。

+1

是不是很容易沒有任何鎖定競爭條件? – Yahia

+0

@Yahia - 公平點。增加了有關適當鎖定的信息 – Oded