我一直在阅读Scott Guthrie 关于自动启动 ASP.NET 应用程序的文章,其中提供了有关如何设置 ASP.NET 4.0 应用程序以自动启动的示例。
<applicationPools>
<add name="MyAppWorkerProcess" managedRuntimeVersion="v4.0"
startMode="AlwaysRunning" />
</applicationPools>
<!--...-->
<sites>
<site name="MySite" id="1">
<application path="/" serviceAutoStartEnabled="true"
serviceAutoStartProvider="PreWarmMyCache" />
</site>
</sites>
<!--...-->
<serviceAutoStartProviders>
<add name="PreWarmMyCache" type="PreWarmCache, MyAssembly" />
</serviceAutoStartProviders>
Run Code Online (Sandbox Code Playgroud)
他的帖子不清楚以下配置是否会自动启动 ASP.NET 应用程序:
<applicationPools>
<add name="MyAppWorkerProcess" managedRuntimeVersion="v4.0"
startMode="AlwaysRunning" />
</applicationPools>
<!--...-->
<sites>
<site name="MySite" id="1">
<application path="/" serviceAutoStartEnabled="true" />
</site>
</sites>
Run Code Online (Sandbox Code Playgroud)
这里的区别在于没有指定要启动的类。理想情况下,应用程序将被加载。Application for a Site的文档暗示该serviceAutoStartEnabled属性需要一个serviceAutoStartProvider属性才能工作。但是没有迹象表明如果不提供附加属性会发生什么。
serviceAutoStartProvider需要指定使用serviceAutoStartEnabled?serviceAutoStartProvider指定会发生什么?其他问题已经涉及到这一点,但让我们得到一个完整的答案:
以域用户作为应用程序池标识的通用 IIS 7 站点需要哪些特定权限?
以域用户作为应用程序池标识的 ASP.NET IIS 7 站点需要哪些特定权限?
如何为默认应用程序池标识 [IIS APPPOOL{应用程序池名称}] 分配活动目录权限?
我试图这样做是为了启用 Web 应用程序查询活动目录组、用户并检查特定用户名或组名的存在。
谢谢。
我看到在 iis 7.5 中,我可以为应用程序池在指定的时间内设置CPU % 利用率限制。如果违反此限制,我也可以让它终止工作进程。如果告诉它这样做,工作进程会在它被杀死后自动重新启动,还是需要手动干预?
在 Stack Overflow上提到它可以在间隔完成时重新启动......
在 Small Business Server 2011 安装中,整个 w3wp.exe 进程似乎使用了不成比例的大量内存。SBS 开箱即用的安装共有 7 个站点和 20 个 ASP.NET 应用程序池(Sharepoint、Exchange、WSUS 和 SBS 特定的东西,如远程工作网站)。
随着时间的推移,产生的十几个 w3wp.exe 进程往往会消耗超过 4 GB 的服务器内存,峰值应用程序池是属于 WSUS 的应用程序池,工作集中大约有 800 MB。通过 IIS MMC 手动回收应用程序池有助于暂时减少内存使用量(w3wp.exe 进程缩小到 10 MB,其中一些进程会快速增长),但显然不是管理员想要整天做的事情。我找不到关于自动回收 SBS 预安装应用程序池的任何建议,所以我有点不愿意在生产系统上“就这样做”。
我在网上关于如何限制这种情况的研究只抛出了一些帖子,指出 w3wp 内存消耗不会损害但会提高性能,因为内存将“在其他应用程序需要时释放”。问题是它不起作用:
我几乎从不管理 IIS 或 ASP.NET 应用程序,因此欢迎任何有关如何有效调整应用程序池的内存要求的想法。
我正在处理具有内存泄漏的旧版 .NET 应用程序。为了尝试缓解内存溢出情况,我将应用程序池内存限制设置为 500KB 到 500000KB (500MB) 之间的任何位置,但是应用程序池似乎不尊重设置,因为我可以登录并查看物理内存(5GB 及以上,无论值如何)。这个应用程序正在杀死服务器,我似乎无法确定如何调整应用程序池。为了确保此应用程序池不超过大约 500 MB 的内存,您建议进行哪些设置。
这是一个示例,应用程序池正在使用 3.5GB 的


因此,服务器再次崩溃,原因如下:

具有低内存限制的相同应用程序池,1000 个回收请求,每两到三分钟会导致一个回收事件,但有时它会跑掉。
我也对任何可以监视此过程的工具持开放态度(作为任务或服务每 30 秒运行一次),并且可以在超过某个限制时将其终止。
有什么方法可以配置 IIS 7.5 以对同一站点上的不同应用程序池执行 URL 重写,而不会遇到 403.18 错误?
我们在 IIS 6 上使用 Helicon ISAPI Rewrite 3,它的工作非常出色。根级“应用程序”在它自己的应用程序池下运行,在 IIS 6 上,我们从该应用程序池向其他四个应用程序池中的任何一个进行 URL 重写都没有问题。但是,当我将相同的服务器配置信息复制到 IIS 7.5 时,URL 重写到任何其他应用程序池都会失败,并显示“403.18 -- Forbidden”错误。
奇怪的一点是 IIS 6 不是(至少据我所知,通过查看站点服务配置对话框)在 IIS 5 仿真模式下运行,所以不知何故重写不会抛出 403.18 错误。所以东西一定是不同的...但不管是什么,我肯定一直没能弄明白。
顺便说一句,我们没有嫁给 Helicon ISAPI Rewrite。如果有另一种方法可以使用另一个模块或方法来保留我们当前的重写配置规则,我会非常乐意使用它。
我使用 Windows Server 2008 R2 仅托管一个应用程序 (asp.net mvc3)。第一次初始页面加载真的很慢。
在我的应用程序池回收设置中,只检查了“定期时间间隔”(以分钟为单位)并将值设置为 1740。如果我理解正确,我的应用程序池将每 29 小时回收一次。然而,我注意到有时在几个小时后我回到我的网站,页面加载再次变慢。似乎应用程序池被回收了。这是开发服务器,根本没有流量。是不是因为没有流量所以它会自行回收,即使时间间隔设置为 29 小时?
我正在设置一个新的 Web 服务器并尝试使用 Windows Server 2008 R2 中可用的新应用程序池标识(如下所述:http : //learn.iis.net/page.aspx/624/application-pool-identities/ ) 以保护文件夹结构。
但是,即使我在 php.ini 中将 FastCGI 模拟设置为 true,PHP 似乎仍在使用本地 IUSR 帐户 - 如何让 PHP 在应用程序池标识下运行?
有问题的文件夹是 c:\inetpub\wwwroot 之外的共享缓存目录。当我授予 IIS_APPPOOL\DefaultAppPool 修改权限时,PHP 文件无法访问该文件夹,但当我授予 SERVERNAME\IUSR(或用户组)权限时,它们可以访问。
PHP 5.3 是使用 IIS 中的 Web 平台安装程序安装的。
PHP 应用程序正在使用 Zend_Cache,如果这有所不同的话。
在过去的 2 周里,我们每晚的 IISReset 没有成功恢复并导致我们中断。
我们有一个每晚运行的 Windows 任务,它执行 IISReset,我想知道这是否还有必要?
我应该查看应用程序池中的功能来重新启动吗?