2016-02-09 39 views
7

Bir ASP.NET MVC sitem var. Sitede hatalar oluştuğunda, bir kullanıcı 20 hatayla karşılaşırsa veya aynı hatayla karşılaşan 20 kullanıcı farkına varmak için istisnayı Request.AnonymousID değeriyle birlikte kaydetmek istiyorum. Aşağıdaki web.config dosyaya eklendi: Visual Studio geliştirme ve IIS Express kullanırken amaçlandığı gibiAnonymousId her zaman boş

<system.web> 
    <anonymousIdentification enabled="true" /> 
    ... 
</system.web> 

, bu çalışır. Ancak, site Test ortamına taşındığında (Windows Server 2012 R2 üzerinde IIS 8.5 çalıştıran), Request.AnonymousID değeri her zaman sıfırdır. IIS'de site için Anonim Kimlik Doğrulaması da yapılandırılmıştır. Yapılandırmadaki her değişiklikten sonra, siteyi yeniden başlatmayı, uygulama havuzunu geri dönüştürmeyi ve tarayıcımda çerezleri temizlemeyi denemiyorum; hiçbir şey işe yaramıyor. .ASPXANONYMOUS çerezi oluşturulur, ancak kodda kullanmaya çalıştığımda kimlik her zaman boştur.

Yalnızca sayfadaki AnonymousId'yi gösteren bir hızlı kukla site oluşturmayı denedim ve bu, Sınama ortamında çalışıyor, bu yüzden asıl sitede yanlış yaptığımı anlayamıyorum.

Herhangi bir yardım büyük memnuniyetle karşılanacaktır.


Düzenleme 1: Özel bir anonymousid üretmek amacıyla, Global.asax için aşağıdaki ekledik:

protected void AnonymousIdentification_Creating(object sender, AnonymousIdentificationEventArgs args) 
{ 
    string id = string.Format("Test-{0}", Guid.NewGuid()); 
    args.AnonymousID = id; 
} 

Yine, bu benim makinede test-benim kukla yerinde çalışır sunucu, ancak gerçek sitede değil.

Bu, herhangi bir fark yaratıyorsa, site bir alt sitedir (ör. mysite .domain.com). Sahte site de bir alt site, ancak burada anonim kimlik doğrulaması "kutudan çıktı".


Düzenleme 2: Bu Test-ortamda sitesinde artık boş AnonymousId görünüyor. Şimdi Global.asax'a eklenen eventhandler'da sağlanan formatla doldurulur. Öyleyse, her şeyi doğru şekilde ayarlamış gibi görünüyor olsa da, kimliğin oluşturulmasını neyin engellediğini bilmek istiyorum. Bir yapılandırma sorunu muydu? Doğru sırada bir şey yapmadım mı (sunucuyu yeniden başlat/uygulama havuzunu geri al, çerezleri temizle)?

+0

Her iki ortam da (dev & test) aynı ana bilgisayar adını paylaşıyor mu? – haim770

+0

@ haim770 Deneme sitesine, makinemde _localhost: 61615_ aracılığıyla erişilirken, test sitesinin gerçek bir ana bilgisayar adı vardır. Sitede bir alt site (örn. ** mysite **. Domain.com) fark yaratıyorsa. –

cevap

1

Çalışması gerekir. Anasistem adı ile ASPXANONYMOUS çerezi

arasında bir ilişki yoktur. IIS'de Anonim Kimlik Doğrulama Modülünün yüklü olup olmadığını ve neyin ayarlandığını kontrol edin. Bu modülün yüklü olmadığı örnekleri gördüm.

+0

Anonim Kimlik Doğrulama Modülü, site için IIS Yöneticisi'nde "Modüller" altında bulunur. IIS'de başka bir yerde yapılandırma sorunu olabilir mi? –

+0

Evet. IIS yapılandırmasının çeşitli düzeylerde üzerine yazılabilir. Yapılandırmanın herhangi bir yerde değiştirilip değiştirilmediğini kontrol etmeniz gerekir. –

İlgili konular