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

Guy*_*Guy 108 iis

我注意到标准的IIS Web文件夹结构下经常有一个aspnet_client文件夹.这是用来做什么的?需要它吗?

Dun*_*can 91

在.NET 1.1及更早版本中,该文件夹为ASP.NET提供了对验证控件和其他功能的JavaScript支持.如果您没有运行.NET 1.1站点或更早版本,则删除它应该是安全的.我会先重命名,以确保它不会造成任何问题.

  • 它显示了如何不再做那样的事情...... :) (14认同)

spm*_*son 66

除了其他人所说的,它通常由aspnet_regiis工具创建,该工具可以由Windows Update/AddRemove Windows组件/ IIS等(重新)运行.因此有时即使您删除它,它也可以随机返回.可能有一种方法可以阻止这种行为,但我还没有找到它(可能将应用程序版本更改为.NET 2实际上会这样做).

因此,除非您使用.NET 1.0/1.1的某些功能(验证,智能导航等),否则您可以毫无问题地删除它,只要它回来就不要太惊讶!

  • 我发现它会定期回来.令它最令人沮丧的是,每次它返回时,它都会破坏WebDeploy,因为运行该帐户的帐户无权删除创建的aspnet_client文件夹! (28认同)
  • @RussCam我确实有同样的问题.它出于同样的原因打破了WebDeploy.有没有人找到一种方法来阻止这个文件夹随机创建? (5认同)
  • 我只是无辜地安装了DotNet Framework 4.5,不久之后我们的WebDeploy部署(通过TeamCity触发)因为相同的原因而破了.由于安装4.5,darn文件夹再次返回.有人,请停下来. (4认同)
  • 我现在已经尝试将这些文件夹添加到我们的部署包中,因此TeamCity不会尝试删除它们.感觉它正在污染我们的代码库,但希望能够阻止ASP.NET和我们的应用程序部署之间的权力斗争. (2认同)

Dav*_*ock 15

aspnet_client是"必须通过HTTP提供的资源的文件夹,但是基于每个服务器安装,而不是基于每个应用程序".

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

  • 用于ASP.NET Web窗体的JavaScript控件在使用客户端验证时(主要用于处理IE5等旧版浏览器)
  • 用于"全局主题"的ASP.NET 2.0(直到框架4.0)(全局到服务器上的所有站点,即)
  • 某些版本的Crystal Reports

将来可能会/将会进一步(ab)使用此文件夹.毋庸置疑,由于它包含"应用程序正常运行所必需"但"不应该由应用程序部署"的内容,因此对于开发人员和系统管理员来说,这仍然是一场噩梦.

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

处理aspnet_client目录的策略包括:*指定映射到C:\ inetpub\wwwroot的虚拟目录,希望IIS放弃创建物理目录*如果您确定您的站点没有,则不时删除物理目录需要它,它真的困扰你*忽略aspnet_client*你自己运行"ASPNET_regiis/c"如果你错过了文件夹,并需要它

可能最重要的是,作为开发人员,您应该清楚地了解并记录应用程序对aspnet_client目录的依赖性,并确保您的安装过程具有确保目录存在的相关说明.但是,您可能不应该费心实际提供该目录作为打包的Web应用程序或网站的一部分 - 您如何为每个版本的.NET框架执行此操作,服务器将在您的应用程序的生命周期中看到它?!

一些链接我将在稍后回来:


小智 8

它还具有某些图标和脚本,即使在1.1之后的版本中,晶体报告也能正常运行