【问题标题】:What is the aspnet_client folder for under the IIS structure?IIS 结构下的 aspnet_client 文件夹是什么?
【发布时间】:2008-10-16 21:52:27
【问题描述】:

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

【问题讨论】:

    标签: iis


    【解决方案1】:

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

    【讨论】:

    • 它的出现是为了提醒你不要再做那样的事情了...... :)
    • 即使您现在退出 .Net 1.1 天,您也可以使用 Crystal Reports,但遗憾的是仍然使用提到的文件夹(并且可能还有其他具有相同行为的软件)。所以,至少,在删除文件夹之前做好备份
    【解决方案2】:

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

    因此,除非您使用 .NET 1.0/1.1 的某些功能(验证、智能导航等),否则您可以毫无问题地删除它,如果它再次出现请不要太惊讶!

    【讨论】:

    • 我发现它会定期返回。最令人沮丧的是,每次它确实回来时,它都会破坏 WebDeploy,因为运行该帐户的帐户无权删除创建的 aspnet_client 文件夹!
    • @RussCam 我也有同样的问题。出于同样的原因,它会破坏 WebDeploy。有没有人找到方法来阻止这个文件夹被随机创建?
    • 我只是无辜地安装了 DotNet Framework 4.5,不久之后,我们的 WebDeploy 部署(通过 TeamCity 触发)由于同样的原因而中断。由于安装了 4.5,该死文件夹又回来了。有人,请停下来。
    • 我现在已经将这些文件夹实际添加到我们的部署包中,因此 TeamCity 不会尝试删除它们。感觉它正在污染我们的代码库,但希望能阻止 ASP.NET 和我们的应用程序部署之间的权力斗争。
    • 我也对这个文件夹一直回来感到非常恼火,我们没有 asp.net 1.x 站点,但似乎每次自动 Windows 更新都会在每个站点中放置这个该死的文件夹,所以破坏了所有我的网络部署。我同意@Michael12345 的观点,将无用的文件夹添加到 SC 只是为了使部署继续工作并且不需要在周末的 win 更新后每周一手动修复将其添加回每个站点(使用不正确的 ACL 权限),这不是一个很好的解决方案.烦人!
    【解决方案3】:

    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 框架执行此操作你的应用程序的生命周期?!

    我稍后会回到一些链接:

    【讨论】:

    • 所以如果你在 wwwroot 下添加 aspnet_client 文件夹,我猜它的内容将被复制到你安装的每个网络应用程序
    【解决方案4】:

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

    【讨论】:

    • 是的,这很难找到。我将我们的 Ripplestone 实例从 Default Web Site 下的虚拟目录移动到它自己的网站,然后 Ripplestone 中的一切都开始变得奇怪。我查看了 javascript 控制台,发现它正在 C:\inetpub\wwwroot\aspnet_client\system_web\4_0_30319\crystalreportviewers13 下寻找东西到我的 Ripplestone 实例所在的目录。
    【解决方案5】:

    该文件夹通常用于存储客户端 Javascript,ASP.NET 将其用于验证之类的事情。

    删除应该是安全的。

    【讨论】:

      【解决方案6】:

      我想我会在这里添加这个,因为这是我在谷歌搜索这个问题时一直被定向到的链接。显然,对于 .NET 4.0 和更新版本,不再需要此文件夹,并且可以毫无问题地删除。

      【讨论】:

        【解决方案7】:

        如果您使用 Installshield 来配置 ASP.net 网站,请注意此功能在 Installshield 2010 中存在,而在 Installshield 2012 中缺失。

        【讨论】:

        • IS2010 中没有某些功能。尝试更多以前的版本。
        猜你喜欢
        • 2011-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-20
        • 1970-01-01
        • 2022-01-20
        • 1970-01-01
        • 2016-06-15
        相关资源
        最近更新 更多