IIS yapısı altındaki aspnet_client klasörü nedir?


108

Standart IIS web klasörü yapısı altında sık sık bir aspnet_client klasörü olduğunu fark ettim. Bu ne için kullanılıyor? Gerekli mi?

Yanıtlar:


91

NET 1.1 günlerinde ve öncesinde, bu klasör ASP.NET'e doğrulama denetimleri ve diğer işlevler için JavaScript desteğini sağladı. Çalışan bir .NET 1.1 siteniz veya daha eski bir siteniz yoksa, güvenli bir şekilde silebilirsiniz. Herhangi bir soruna neden olmadığından emin olmak için önce yeniden adlandırırdım.


15
Artık böyle şeyleri nasıl yapmayacağınızı hatırlatmak için ortaya çıkıyor ... :)
Ostati

Şimdi .Net 1.1 günlerinin dışında olsanız bile, ne yazık ki hala bahsedilen klasörü kullanan Crystal Reports'u kullanabilirsiniz (ve muhtemelen aynı davranışa sahip başka yazılımlar da vardır). Bu yüzden, en azından, klasörü silmeden önce yedekleme yapın
Vadim Levkovsky

66

Başkalarının söylediklerine ek olarak, genellikle Windows Update / AddRemove Windows bileşenleri / IIS gibi şeyler tarafından (yeniden) çalıştırılabilen aspnet_regiis aracı tarafından oluşturulur. Bu yüzden bazen silseniz bile rastgele geri gelebilir. Bu davranışı durdurmanın bir yolu olabilir, ancak ben bulamadım (belki de uygulama sürümünü .NET 2 olarak değiştirmek gerçekten işe yarar).

Dolayısıyla, .NET 1.0 / 1.1'in (doğrulama, Akıllı Gezinme vb.) Belirli özelliklerini kullanmıyorsanız, herhangi bir sorun yaşamadan silebilirsiniz, geri gelirse çok şaşırmayın!


28
Periyodik olarak geri geldiğini görüyorum. Bununla ilgili en sinir bozucu olan şey, her geri geldiğinde, altında çalışan hesabın oluşturulan aspnet_client klasörünü silmek için erişimi olmadığı için WebDeploy'u bozmasıdır!
Russ Cam

5
@RussCam Bende de aynı sorun var. Aynı nedenle WebDeploy'u bozar. Bu klasörün rastgele oluşturulmasını durdurmanın bir yolunu bulan oldu mu?
tugberk

4
DotNet Framework 4.5'i masum bir şekilde kurdum ve kısa bir süre sonra WebDeploy dağıtımımız (TeamCity ile tetiklendi) AYNI nedenle bozuldu. Darn klasörü 4.5 kurulumunun bir sonucu olarak tekrar geri geldi. Biri lütfen durdursun.
Michael12345

2
Şimdi bu klasörleri dağıtım paketimize eklemeye başvurdum, böylece TeamCity onları kaldırmaya çalışmasın. Kod tabanımızı kirletiyor gibi görünüyor, ancak umarız ASP.NET ile uygulama dağıtımımız arasındaki güç mücadelesini durdurur.
Michael12345

1
Ayrıca bu klasörün sürekli geri gelmesinden de ciddi şekilde rahatsız oluyorum, asp.net 1.x sitemiz yok ve görünüşe göre her otomatik pencere güncellemesi bu kanlı klasörü her siteye koyuyor, böylece tüm web dağıtımlarımı bozuyor. @ Michael12345'e, yalnızca dağıtımların çalışmaya devam etmesini sağlamak için SC'ye gereksiz klasörler eklemenin harika bir çözüm olmadığını ve hafta sonundaki kazanç güncellemelerinin her bir siteye geri ekledikten sonra her Pazartesi manuel olarak düzeltilmesi gerekmediğini kabul ediyorum (yanlış ACL izinleriyle) . Can sıkıcı !
MemeDeveloper

15

aspnet_client, "HTTP yoluyla sunulması gereken, ancak uygulama bazında değil, sunucu bazında yüklenen kaynaklar" için bir klasördür.

Aspnet_client'in bazı kullanımları aşağıdakiler için kaynakları (ör. JavaScript, resimler) depolamayı içerir:

  • İstemci tarafı doğrulamasını kullanırken ASP.NET Web Formları için JavaScript kontrolleri (esas olarak IE5 gibi eski tarayıcıları kullanmak için)
  • 'Genel Temalar' için ASP.NET 2.0 (çerçeve 4.0'a kadar) (bir sunucudaki tüm siteler için genel, yani)
  • Crystal Reports'un bazı sürümleri

Muhtemelen gelecekte bu klasörün başka (ab) kullanımları olacaktır / olacaktır. Söylemeye gerek yok, "uygulamanın doğru çalışması için gerekli" ancak "uygulama tarafından dağıtılmaması gereken" şeyler içerdiğinden, hem geliştiriciler hem de sistem yöneticileri için bir kabus olarak kalacak.

Görünüşe göre klasör içeriği için 'prototip' C: \ inetpub \ wwwroot \ konumunda ve herhangi bir IIS web sitesinde bir / aspnet_client kaynağı yoksa, IIS'nin doğru şeyi yapmaya çalışacağını varsaymak mantıklı görünüyor ve ... son çare olarak ... web sitesi kök klasöründe fiziksel bir klasör oluşturun ve dosyaları buraya kopyalayın. Görünüşe göre IIS bunu en azından belirli bir sunucuya "ASPNET_regiis / c" çağrıldığında yapacaktır - bu muhtemelen bazı kritik noktalarda otomatik olarak gerçekleşir ... örneğin IIS rolüne sahip bir sunucuya .NET çerçeve güncellemelerinin uygulanması gibi.

Aspnet_client dizinini işleme stratejileri şunları içerir: * C: \ inetpub \ wwwroot ile eşlenmiş bir sanal dizini belirtmek ve IIS'nin fiziksel bir dizin oluşturmayı bırakması umuduyla * sitenizin yapmadığından eminseniz fiziksel dizini zaman zaman silmek buna ihtiyacım yok ve gerçekten rahatsız ediyor * aspnet_client'i görmezden gelmek * klasörü kaçırıyorsanız ve buna ihtiyacınız varsa "ASPNET_regiis / c" yi kendiniz çalıştırmanız

Muhtemelen en önemlisi, bir geliştirici olarak, uygulamalarınızın aspnet_client dizinine bağımlılıklarını açıkça anlamalı ve belgelemelisiniz ve kurulum prosedürünüzün dizinin var olduğundan emin olmak için ilgili talimatlara sahip olduğundan emin olmalısınız. Bununla birlikte, muhtemelen dizini paketlenmiş web uygulamanızın veya web sitenizin bir parçası olarak tedarik etme zahmetine girmemelisiniz - bunu, sunucunun uygulamanızın ömrü boyunca göreceği her .NET çerçevesi sürümü için nasıl yapabilirsiniz ?!

Daha sonra geri döneceğim bazı bağlantılar:


bu nedenle, wwwroot altına aspnet_client klasörünü eklerseniz, içeriği yüklediğiniz her web uygulamasına kopyalanacaktır
George Birbilis

8

Ayrıca, kristal raporların 1.1'den sonraki sürümlerde bile düzgün çalışması için gerekli olan belirli simge ve komut dosyalarına sahiptir.


Yah, bunu zor yoldan öğrendim. Ripplestone örneğimizi Varsayılan Web Sitesi altındaki sanal bir dizinden kendi web sitesine taşıdım ve Ripplestone'da her şey tuhaflaşmaya başladı. Javascript konsoluna baktım ve C:\inetpub\wwwroot\aspnet_client\system_web\4_0_30319\crystalreportviewers13 bunun yapılması gereken doğru şey olup olmadığından emin değilim altında bir şeyler aradığını gördüm , ancak aspnet_client klasörünün tamamını kökten Ripplestone örneğimin yaşadığı dizine kopyaladım.
Adam Nofsinger

3

Klasör genellikle ASP.NET'in doğrulama gibi şeyler için kullandığı istemci tarafı Javascript'i depolamak içindir.

Silinmesi güvenli olmalı.


1

Bunu buraya ekleyeceğimi düşündüm, çünkü bu soruyu Google'da araştırdığımda yönlendirilmeye devam ettiğim bağlantı bu. Görünüşe göre .NET 4.0 ve daha yenisi ile bu klasör artık gerekli değildir ve sorunsuz bir şekilde kaldırılabilir.


0

ASP.net web sitesini yapılandırmak için Installshield kullanıyorsanız, bu özelliğin Installshield 2010'da mevcut olduğunu ve Installshield 2012'de eksik olduğunu unutmayın. Installshield 2010 Vs 2012


Bazı özellikler IS2010'da mevcut değildir. Daha önceki sürümleri deneyin.
Vishnu Prasanth
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.