2012-01-27 14 views
6

ASP.NET Geliştirme Sunucusunun neden istekleri aynı anda işlemediğini bulmaya çalışıyorum. ASP.NET Geliştirme Sunucusu eşzamanlı işleme çalışmıyor

Yani aşağıdaki kodla basit aspx sayfası oluşturduk:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

System.Threading.Thread.Sleep(10000) 

End Sub 

ben sayfayi iki kez açarsanız, yanıt 20 saniye sürer. Yani, sunucu istekleri birer birer yürütür (eş zamanlı değil).

this topic'da verilen öneride, sayfaya EnableSessionState="false" ekledim, ancak bu yardımcı olmuyor.

İstekler eşzamanlı olarak nasıl işlenir?

cevap

7

Asp.net dev sunucusu (cassini) birden çok iş parçacığı işleyemiyor. Bu nedenle, istekleri her seferinde bir tane etkin bir şekilde işler. Oturumu kapatma gerçekten bunu etkilemez.

Sadece bir web uygulamasının sınırlı tek kullanıcı testi için.

Kasiyerleri boşaltmanızı ve IIS Express'i yüklemenizi veya yalnızca tam IIS uygulamasına gitmenizi öneririm.

Biraz okuma: XP ASP.NET Dev Server (Cassini), IIS Express and multiple threads

0

IIS (Ben 10 olduğunu düşünüyorum) birçok eşzamanlı bağlantı izin vermez. Bu ortamda gelişiyorsanız, bunun nedeni şu olabilir (bu 2 isteğin yanı sıra, başvurulan dosyalar için talepleriniz de vardır, ayrıca bu sayfa için olduğunu düşündüğünüzden daha fazla istekte bulunabilirsiniz) .

VS yerleşik sunucunun benzer sınırlamaları olup olmadığından emin değilim.

+0

anlamıyorum. Konuyla ilgili olduğunu düşünüyorum ve soruya gerçekten cevap vermese de (belirsiz olduğu gibi), cezalandırılmamalı. Eğer bir şey olursa, "yine de," almalıyım. Her neyse, her ne yaptıysa, sağol. –

+0

Katılıyorum ... sayım;) – NotMe

+0

evet cezalandırılmaması gereken ama ödüllendirilmemenin güzel bir bakış açısı sundun ... –

0

SessionState'i devre dışı bırakmadan ASP.NET MVC'yi kullanıyorsanız (varsayılan olarak bu olabilirsiniz) istekleriniz otomatik olarak serileştirilir. Bu nedenle, yarış koşullarını rastgele bir Thread.Sleep() değeriyle kontrol ediyorsanız, B Talebinde bulunma asla Uyuma süresi daha az olsa bile A Talebinden önce tamamlanır. birileri bunu downvote yapmak için konu dışı yüzden bu cevap görüntülendi neden

ASP.NET MVC and Ajax, concurrent requests?

İlgili konular