13

Birkaç ASP.Net MVC ve WebAPI projelerim var. Bunların çoğu günceldir (MVC 5/WebAPI 2). Güvenlik varsayımlarımı iki kez kontrol ettim çünkü sistem genelinde güvenliği birleştirmek için küresel bir filtre (MVC için) ve bir temsilci (WebAPI için) uygulamıyorum. Bu bağlamda ASP.Net vs MVC vs WebAPI ve UseTaskFriendlySynchronizationContext

, birkaç makale ve daima ( false için öntanımlı) UseTaskFriendlySynchronizationContext true ayarını gerektiğini söylüyorlar mesajların (aşağıya bakınız) rastlamak ettik. Bu MVC 5 ve WebAPI 2 yeni proje şablonları (ASP.Net WebForms şablonunun yanı sıra) kullanarak VS2013 bile bu uygulama ayarını hiç ayarlamaz gibi garip görünüyor.

Bu ayardaki MSDN dökümanları pratik olarak mevcut değil ve async programlama için gerekli olduğunu söyleyen yayınlar WebForms bağlamında görünüyor.

Yani benim sorular şunlardır: Bu ayar her şey ASP.Net için geçerli ya da (ben pek kullanılmaz ettik) ASP.Net içinde sayfa yaşam döngüsü şeyler

  • özgüdür mu
    1. Modern zaman uyumsuz programlama için çok önemliyse, neden herhangi bir öğretici veya şablona başvurmuyor?
    2. Thread.CurrentPrincipal'ın ConfigureAwait (false) kullanan herhangi bir sorunla karşılaştığı başvurulan bir kitaplıktaki iddiaları kullanmak ister misiniz, yoksa ExecutionContext'in mantıksal çağrı bağlamının akışını oradaki benimle ilgilenir mi?

    İşte UseTaskFriendlySynchronizationContext ilgili gördüğüm makalelerin bazıları (benim okuma ve test şimdiye kadar olacak belirtir):

    gerçekten beni tüm bu şeyler UseTaskFriendlySynchronizationContext söz asla nasıl çalıştığına dair bir kavrayışa olsun yardımcı Bazı makaleler:

  • cevap

    15

    eksik anahtar referans this blog post olduğunu. Özellikle, UseTaskFriendlySynchronizationContextveyatargetFramework setini 4.5'a ayarlamanız gerekir. 4.5 için targetFramework yeni bir proje kümesi oluşturma, böylece doğru davranış (UseTaskFriendlySynchronizationContext örtülü olarak true olarak ayarlanmış) alırsınız.

    özel sorulara cevap için:

    1. ayar istekleri, sadece WebForms her türlü taşıma ASP.NET isteği etkiler.
    2. Çoğu async öğreticisi bir GUI uygulama senaryosu üstlenir.
    3. Emin değilim; Bence bu ayrı bir soru olarak daha iyi olurdu. Benim gut hisim, 'un'un ASP.NET içeriğini terk ettikten sonra Thread.CurrentPrincipal'a bağımlı olmamasıdır.
    +0

    Bazı hızlı örnek kodlarla # 3'ü kendi sorusuna çektim. Buna bakmak için bir şansın varsa, gerçekten takdir ediyorum! ([Güvenlik, Thread.CurrentPrincipal ve ConfigureAwait (false)] (http://stackoverflow.com/questions/20479888/security-thread-currentprincipal-and-configureawaitfalse)) –