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

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

106186 次浏览

在。NET 1.1天前,这个文件夹为 ASP.NET 提供了对验证控件和其他功能的 JavaScript 支持。如果你没有。NET 1.1站点或更老的运行它应该是安全的删除它。我会先重命名它,以确保它不会引起任何问题。

The folder is usually for storing client side Javascript, which ASP.NET uses for things like validation.

删除应该是安全的。

除了其他人所说的,它通常是由 aspnet _ regiis 工具创建的,这个工具可以由 Windows Update/AddRemoveWindows 组件/IIS 之类的东西(重新)运行。所以有时即使你删除了它,它也会随机回来。可能有一种方法可以停止这种行为,但是我还没有找到它(可能将应用程序版本更改为。NET 2可以做到这一点)。

So unless you're using certain features of .NET 1.0/1.1 (validation, Smart Navigation etc) you can delete it without any problems, just don't be too surprised if it comes back!

它还具有某些图标和脚本,即使在1.1以后的版本中,水晶报表也需要这些图标和脚本才能正常运行

aspnet_client is a folder for "resources which must be served via HTTP, but are installed on a per-server basis, rather than a per-application basis".

Aspnet _ client 的一些用途包括为以下目的存储资源(如 JavaScript、图像) :

  • 使用客户端验证时,使用 ASP.NET Web Forms 控件的 JavaScript (似乎主要是为了处理像 IE5这样的老浏览器)
  • NET 2.0(直到框架4.0)的“全局主题”(即服务器上所有站点的全局主题)
  • some versions of Crystal Reports

将来可能会进一步使用这个文件夹。不用说,因为它包含了“应用程序正确运行所必需的”但“应用程序不应该部署的”内容,所以对于开发人员和系统管理员来说,它仍然是一场噩梦。

文件夹内容的“原型”似乎在 C: inetpub wwwroot 中,假设任何给定的 IIS 网站缺乏/aspnet _ client 资源,那么 IIS 将尝试做正确的事情,并且... ... 作为最后的手段... ... 在网站根文件夹中建立一个物理文件夹,并在那里复制文件,这似乎是合理的。看起来 IIS 至少在“ ASPNET _ regiis/c”被调用到给定的服务器时会这样做——这可能会在某些关键时刻自动发生... ... 比如。NET 框架更新应用于具有 IIS 角色的服务器。

处理 aspnet _ client 目录的策略包括:

  • 指定映射到 C: inetpub wwwroot 的虚拟目录,希望 IIS 放弃创建物理目录
  • 如果你确定你的网站不需要物理目录,并且它真的让你烦恼,那么你可以时不时地删除它
  • 忽略 aspnet _ client
  • running "ASPNET_regiis /c" yourself if you're missing the folder, and need it

也许最重要的是,作为开发人员,您应该清楚地理解并记录应用程序对 aspnet _ client 目录的依赖关系,并确保安装过程具有相关的说明,以确保该目录存在。然而,你可能不应该麻烦实际 供应的目录作为您打包的 Web 应用程序或网站的一部分-你怎么可能做到这一点为每个版本的。NET 框架,服务器将看到在您的应用程序的生命周期? !

Some links I will come back to later:

Figured I'd add this here as this is the link I kept being directed to when I googled this question. Apparently with .NET 4.0 and newer this folder is no longer needed and can be removed without issue.

如果您正在使用 Installscreen 来配置 ASP.net 网站,请注意,这个特性在 Installshide2010中出现过,在 Installshide2012中没有。 Installshield 2010 Vs 2012