什么是IIS结构下的aspnet_client文件夹?

我注意到在标准的IIS web文件夹结构下经常有一个aspnet_client文件夹。 这是用来干什么的? 需要吗?

在.NET 1.1和之前的版本中,这个文件夹为ASP.NET提供了对validation控件和其他function的JavaScript支持。 如果您没有运行.NET 1.1或更旧版本的站点,应该可以安全地删除它。 我会先重命名它,以确保它不会造成任何问题。

除了别人所说的之外,它通常由aspnet_regiis工具创build,可以通过Windows Update / AddRemove Windows组件/ IIS等(重新)运行。 所以有时候,即使你删除它,它可以随机回来。 可能有办法阻止这种行为,但我还没有find它(也许更改应用程序版本到.NET 2会实际上)。

所以,除非你使用.NET 1.0 / 1.1(validation,智能导航等)的某些特性,否则你可以毫无问题的删除它,只要不会感到惊讶!

aspnet_client是“必须通过HTTP提供服务的资源的文件夹,但是以每个服务器为基础安装,而不是以每个应用程序为基础”。

aspnet_client的一些用途包括存储资源(例如,JavaScript,图像):

  • 用于ASP.NET Web Forms的JavaScript控件在使用客户端validation时(主要是处理像IE5这样的旧版本的浏览器,看来)
  • ASP.NET 2.0(直到在框架4.0)“全球主题”(全局到服务器上的所有网站,这是)
  • 某些版本的Crystal Reports

今后有可能会进一步(ab)使用这个文件夹。 不用说,因为它包含了“应用程序正确运行所必需的”但“不应该由应用程序部署”的东西,对开发人员和系统pipe理员来说,这仍然是一个噩梦。

看来,文件夹内容的“原型”是在C:\ inetpub \ wwwroot \中,而且假设如果任何给定的IIS网站缺less一个/ aspnet_client资源,那么IIS将会尝试做正确的事情并…作为最后的手段…在网站的根文件夹中创build一个物理文件夹,并在那里复制文件。 看起来,IIS至less会在给定服务器调用“ASPNET_regiis / c”时这样做 – 这可能会在某些关键时刻自动发生……就像.NET框架更新应用于具有IISangular色的服务器一样。

处理aspnet_client目录的策略包括:*指定映射到C:\ inetpub \ wwwroot的虚拟目录,希望IIS将放弃创build一个物理目录*不时删除物理目录,如果你确定你的网站不是'吨需要它,它真的困扰你*忽略aspnet_client *自己运行“ASPNET_regiis / c”如果你错过了文件夹,并需要它

也许最重要的是,作为一名开发人员,您应该清楚地理解和logging您的应用程序对aspnet_client目录的依赖关系,并确保您的安装过程具有相关说明,以确保该目录存在。 但是,您应该不打算实际提供作为打包的Web应用程序或网站的一部分的目录 – 您怎么可能为服务器在应用程序的整个生命周期中看到的每个.NET框架版本执行此操作?

我会回来的一些链接:

它还具有某些图标和脚本,即使在1.1以后的版本中,Crystal Reports也能正常运行

该文件夹通常用于存储客户端的JavaScript,ASP.NET使用的东西,如validation。

删除应该是安全的。

想象一下,我会在这里添加这个,因为这是我一直使用这个问题时不断被引导到的链接。 显然,与.NET 4.0和更新此文件夹不再需要,可以被删除没有问题。