IIS 结构下的 aspnet_client 文件夹是啥?
Posted
技术标签:
【中文标题】IIS 结构下的 aspnet_client 文件夹是啥?【英文标题】:What is the aspnet_client folder for under the IIS structure?IIS 结构下的 aspnet_client 文件夹是什么? 【发布时间】:2008-10-16 21:52:27 【问题描述】:我注意到标准 IIS Web 文件夹结构下经常有一个 aspnet_client 文件夹。这是干什么用的?需要吗?
【问题讨论】:
【参考方案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 框架执行此操作你的应用程序的生命周期?!
我稍后会回到一些链接:
http://my.safaribooksonline.com/book/certification/mcts/9780735657489/2dot-using-master-pages-themes-and-caching/ch02s03_html?query=((aspnet_client))&reader=html&imagepage=#snippet What is the aspnet_client folder in my ASP.NET website? iis express path for global theme directory http://my.safaribooksonline.com/book/web-development/microsoft-aspdotnet/0735621772/aspdotnet-configuration/111?query=((aspnet_client))#X2ludGVybmFsX0J2ZGVwRmxhc2hSZWFkZXI/eG1saWQ9MDczNTYyMTc3Mi8xMTE= http://my.safaribooksonline.com/book/web-development/microsoft-aspdotnet/9780471785989/working-with-themes/ch41lev1sec8?query=((aspnet_client))&reader=html&imagepage=#X2ludGVybmFsX0h0bWxWaWV3P3htbGlkPTk3ODA0NzE3ODU5ODklMkZjaDQxbGV2MnNlYzEwJnF1ZXJ5PSgoYXNwbmV0X2NsaWVudCkp http://my.safaribooksonline.com/book/web-development/microsoft-aspdotnet/067232542x/performing-form-validation-with-validation-controls/ch03lev1sec1?query=((aspnet_client))&reader=html&imagepage=#snippet http://scn.sap.com/thread/3157366【讨论】:
所以如果你在 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 中没有某些功能。尝试更多以前的版本。以上是关于IIS 结构下的 aspnet_client 文件夹是啥?的主要内容,如果未能解决你的问题,请参考以下文章
在实际发布之前调用 IIS 的发布配置文件 XML 下的发布后脚本
将 MVC3 设置为经典 asp 虚拟文件夹下的应用程序 - IIS7
解决IIS长连接限制的坑,导致部署在IIS下的.NET Core项目假死
Web项目Bin目录下的文件改动会引发Application_End事件,IIS会回收线程
linux下的php网站放到Windows服务器IIS下导入 .htaccess文件伪静态规则转换 (wordpress)