Zauważyłem, że w standardowej strukturze folderów sieci Web usług IIS często znajduje się folder aspnet_client. Do czego to służy? Czy to potrzebne?
108
W wersji .NET 1.1 i wcześniejszych ten folder zapewniał ASP.NET obsługę języka JavaScript w zakresie formantów sprawdzania poprawności i innych funkcji. Jeśli nie masz witryny .NET 1.1 lub starszej, usunięcie jej powinno być bezpieczne. Najpierw zmieniłbym nazwę, aby upewnić się, że nie powoduje żadnych problemów.
Oprócz tego, co powiedzieli inni, jest zwykle tworzony przez narzędzie aspnet_regiis, które może być (ponownie) uruchamiane przez takie rzeczy, jak Windows Update / AddRemove Windows Components / IIS. Więc czasami nawet jeśli go usuniesz, może wrócić losowo. Może istnieć sposób na zatrzymanie tego zachowania, ale go nie znalazłem (może zmiana wersji aplikacji na .NET 2 faktycznie by to zrobiła).
Więc jeśli nie korzystasz z niektórych funkcji .NET 1.0 / 1.1 (walidacja, inteligentna nawigacja itp.), Możesz go usunąć bez żadnych problemów, tylko nie zdziw się, jeśli wróci!
źródło
aspnet_client to folder „zasobów, które muszą być obsługiwane za pośrednictwem protokołu HTTP, ale są instalowane dla poszczególnych serwerów, a nie dla poszczególnych aplikacji”.
Niektóre z zastosowań aspnet_client obejmują przechowywanie zasobów (np. JavaScript, obrazów) dla:
Prawdopodobnie będą / będą dalsze (nad) zastosowania tego folderu w przyszłości. Nie trzeba dodawać, że ponieważ zawiera elementy, które są „niezbędne do prawidłowego działania aplikacji”, ale które „nie powinny być wdrażane przez aplikację”, pozostanie koszmarem zarówno dla programistów, jak i administratorów systemu.
Wydaje się, że `` prototyp '' zawartości folderu znajduje się w C: \ inetpub \ wwwroot \ i rozsądne wydaje się założenie, że jeśli w dowolnej witrynie usług IIS brakuje zasobu / aspnet_client, usługi IIS spróbują zrobić to, co należy i ... w ostateczności ... utwórz folder fizyczny w folderze głównym serwisu WWW i skopiuj tam pliki. Wydaje się, że IIS zrobi to przynajmniej wtedy, gdy "ASPNET_regiis / c" zostanie wywołane na danym serwerze - co prawdopodobnie następuje automatycznie w niektórych krytycznych momentach ... np. Gdy aktualizacje .NET Framework są stosowane na serwerze, który pełni rolę IIS.
Strategie obsługi katalogu aspnet_client obejmują: * określenie katalogu wirtualnego zamapowanego na C: \ inetpub \ wwwroot w nadziei, że usługi IIS zrezygnują z tworzenia katalogu fizycznego * usuwanie katalogu fizycznego od czasu do czasu, jeśli masz pewność, że Twoja witryna tego nie robi nie jest to potrzebne i naprawdę przeszkadza * ignorowanie aspnet_client * samodzielne uruchamianie „ASPNET_regiis / c”, jeśli brakuje folderu i go potrzebujesz
Prawdopodobnie najważniejsze jest to, że jako programista powinieneś jasno zrozumieć i udokumentować zależności aplikacji w katalogu aspnet_client i upewnić się, że procedura instalacji zawiera odpowiednie instrukcje, aby upewnić się, że katalog istnieje. Jednak prawdopodobnie nie powinieneś zawracać sobie głowy dostarczaniem katalogu jako części spakowanej aplikacji internetowej lub witryny internetowej - jak możesz to zrobić dla każdej wersji platformy .NET, którą serwer będzie widział przez cały okres użytkowania aplikacji ?!
Kilka linków, do których wrócę później:
źródło
Zawiera również pewne ikony i skrypty, które są wymagane, aby raporty crystal działały poprawnie nawet w wersjach późniejszych niż 1.1
źródło
C:\inetpub\wwwroot\aspnet_client\system_web\4_0_30319\crystalreportviewers13
Nie jestem pewien, czy to było właściwe , czy nie, ale właśnie skopiowałem cały folder aspnet_client z katalogu głównego do katalogu, w którym mieszkała moja instancja Ripplestone.Folder zwykle służy do przechowywania skryptów JavaScript po stronie klienta, których ASP.NET używa do takich celów, jak sprawdzanie poprawności.
Usunięcie powinno być bezpieczne.
źródło
Pomyślałem, że dodam to tutaj, ponieważ jest to link, do którego byłem kierowany, kiedy szukałem tego pytania w Google. Najwyraźniej w .NET 4.0 i nowszych ten folder nie jest już potrzebny i można go usunąć bez problemu.
źródło
Jeśli używasz programu Installshield do konfigurowania witryny ASP.net, pamiętaj, że ta funkcja była obecna w programie Installshield 2010 i jej brakuje w programie Installshield 2012.
źródło