我想在我的asp.net mvc 2應用程序中具有並行功能。我在我的視圖中以表格格式加載了一個ip地址列表。我想看看它們是否可以ping通。所以我在jQuery.ajax()的幫助下爲每個ip地址啓動了控制器上的GetStatus(string ip)動作。我可以在螢火蟲中看到所有請求都已經啓動。但在log4net日誌的服務器端,我可以看到這些請求以順序方式執行。是asp.net mvc操作是單用戶嗎?
所以我這裏有
2分的問題是asp.net mvc的行動是單個用戶?這意味着如果一個動作被多個用戶調用,那麼這個特定動作是否會針對每個用戶逐一執行,而不是由asp.net或IIS創建的單獨(神奇)線程執行?
由於ping是網絡操作,我應該如何使它並行。
我在asp.net上工作,但這方面對我來說似乎是新的。在這方面任何具體的資源是最受歡迎的。
編輯:我正在Asp.Net MVC 2
如果asp.net序列化訪問會話,是否意味着會話是線程安全的? – fengd 2012-01-17 14:29:50
@ Jun1st,不,這正是因爲會話**不是線程安全的** ASP.NET會鎖定請求,並且一次只允許給定會話的一個請求執行。請記住,只有當您爲同一個會話發送2個並行請求時纔會發生這種情況。兩個單獨的用戶(具有單獨的會話)同時發送並行請求到同一個動作將被並行執行而沒有任何鎖定。 – 2012-01-17 14:30:35
@DarinDimitrov,我正在寫入會話在索引操作中,只在GetStatus()操作中進行讀取操作。但從SessionState屬性看來,它只能用於Class。您認爲應該如何通過會話訪問來實現這種並行性? – Codie 2012-01-17 14:42:20