AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[application-pools](server)

Martin Hope
Ross Bush
Asked: 2022-02-01 10:32:37 +0800 CST

设置为 AlwaysRunning 的应用程序池不会自动启动托管服务

  • 1

我已将池配置为自动启动且永不休眠。我在自动启动时遇到问题。我的理解是,当发生这种情况时,将在回收后启动线程池工作程序,我假设将调用应用程序入口点,但是,这似乎不起作用。

部署应用程序后,我在“IIS AspNetCore Modeule”V2 接收器下看到以下日志条目。

  1. 2022 年 1 月 28 日上午 9:25:15 - 运行作业:发布
  2. 2022 年 1 月 28 日上午 9:25:28 - 应用程序“C:<path to app>”在检测到 app_offline.htm 后被回收。
  3. 2022 年 1 月 28 日上午 9:25:29 - 应用程序“MACHINE/WEBROOT/APPHOST//”已关闭。
  4. 2022 年 1 月 28 日上午 9:25:33 - 工作发布完成,结果:成功

在哪里

  1. DevOps 微服务构建 - 开始
  2. 回收(构建创建 app_offline)
  3. Api 关闭
  4. DevOps 微服务构建开始 - 成功

我很困惑没有关联的 api 启动消息,例如 - Application 'C:<path to app>' 已成功启动。

需要注意的是,这是一个不接受任何 http 请求的 .NET Core API“微服务”。在代码中,启动具有此配置。

services.AddHostedService<AuthorizationMessageConsumerService>();

和

public class AuthorizationMessageConsumerService : BackgroundService

如果在每次部署之后,/health 端点都被 ping 通,那么服务就会启动。

我只能猜测 AlwaysRunning 只是创建了一个新的请求线程,但没有调用任何入口点,它被传入的 http 请求 /health 调用。

我试图避免将 ping 设置为构建和部署要求。是否有任何选项或者按时间间隔设置运行状况 ping 和部署后是最佳解决方案?

IIS 配置

在此处输入图像描述

iis application-pools background-process web-applications .net
  • 1 个回答
  • 556 Views
Martin Hope
Nicholas McQuillen
Asked: 2021-06-09 09:38:23 +0800 CST

IIS 8.5 和 10,可以为 IIS 请求/回收设置的最大值?

  • 0

根据 DISA,我们需要为请求设置回收选项。我似乎无法追踪这应该是什么最大值或计数器何时重新启动?如果应用程序池配置为在午夜回收,请求计数器不应该重置为 0 吗?我们将我们认为的上限设置为 99,999,但这似乎每天中午左右在我们所有 3 台平衡服务器上都会受到影响。有时在私有字节限制被击中后不久(也必须为每个 STIG 设置,但大约是总操作系统内存的 70%)发出另一个回收请求,我认为有太多排队的请求正在处理或垃圾收集正在挣扎(因此cpu/mem 峰值)在工作负载高峰期间发出完整的垃圾收集。我已经看到 IIS 6.5 有 35,000 个请求但不能 似乎找不到关于 IIS 8.5 和 IIS 10 的最大值的良好指导(当我们迁移时)。我们没有注意到我们达到了请求限制,因为在 IIS 8.5 中默认情况下没有启用日志记录,但在 IIS 10 中。我们还注意到绑定到 ssl 证书绑定到的默认站点的父级 defaultapppool 确实触发针对子应用程序池的完整垃圾收集事件(可能是因为共享配置设置的安全性)。如果有人需要一个方便的脚本来将所有池设置为在午夜回收/为 iis 8.5 启用日志记录,则如下所示。我们还注意到绑定到绑定 ssl 证书的默认站点的父级 defaultapppool 确实触发了针对子应用程序池的完整垃圾收集事件(可能是因为安全性的共享配置设置)。如果有人需要一个方便的脚本来将所有池设置为在午夜回收/为 iis 8.5 启用日志记录,则如下所示。我们还注意到绑定到绑定 ssl 证书的默认站点的父级 defaultapppool 确实触发了针对子应用程序池的完整垃圾收集事件(可能是因为安全性的共享配置设置)。如果有人需要一个方便的脚本来将所有池设置为在午夜回收/为 iis 8.5 启用日志记录,则如下所示。

Import-Module WebAdministration
Get-ChildItem –Path IIS:\AppPools | ForEach-Object{

$appPoolName = $_.name
$appPool = Get-Item "IIS:\AppPools\$appPoolName"
$appPool.recycling.logEventOnRecycle = "Time, Requests, Schedule, Memory, IsapiUnhealthy, OnDemand, ConfigChange, PrivateMemory"
$appPool.Recycling.periodicRestart.time = "0"
clear-ItemProperty "IIS:\AppPools\$appPoolName" -Name Recycling.periodicRestart.schedule #clear values
set-ItemProperty "IIS:\AppPools\$appPoolName" -Name Recycling.periodicRestart.schedule -Value @{value="00:00:00"}
$appPool | Set-Item

}
application-pools windows-server-2012-r2 iis-8.5 requests
  • 1 个回答
  • 229 Views
Martin Hope
User12
Asked: 2021-05-16 21:45:24 +0800 CST

如何使用 appcmd.exe 获取应用程序池列表

  • 3

我们使用以下命令获取添加的站点列表是:

%systemroot%\system32\inetsrv\AppCmd.exe list sites

但上述命令无法获取与站点相关的应用程序池列表。

我想要一个应用程序池列表。如果一个命令查看站点列表和相关应用程序池,真的很好。

iis windows-command-prompt application-pools appcmd
  • 2 个回答
  • 3119 Views
Martin Hope
The ITea Guy
Asked: 2020-10-14 07:14:19 +0800 CST

IIS 10 应用程序池内存管理

  • 0

我需要在我的 IIS 应用程序池中配置几个远离默认设置的设置,但我没有找到很好的指导,也没有很幸运的试错实验。

我有两个正在使用的应用程序池。一个托管一个应用程序,另一个托管两个。这些应用程序用于支持我们办公室的日常工作,是用户通过网站或本地 Visual Studio 客户端访问的 TFS 本地实例。该机器是一个虚拟 Windows 主机,最大 RAM 为 16GB,常规使用量在 10.5GB 左右。

有问题的值是回收请求限制、专用内存限制和虚拟内存限制。

这三个的默认值为“0”,表示“无限制”。这是不允许的。

到目前为止,似乎每当我在相关字段中设置任何值时,TFS 的性能都会下降。它仍然可以访问,但明显慢得多。

对于内存限制,我在网上找到了一些指导,应用程序通常只能使用 1.6GB 之类的东西,所以我开始试用两个池的 2GB 限制。这效果不好,所以我一直在增加它,直到我为两个池提供了 16GB 的最大限制(以 kb 表示,所以 16777216kb)。私有内存限制和虚拟内存限制中使用的数量保持不变,因为似乎没有任何迹象表明它们应该分开。

回收的请求限制,另一个不能再为“0”的值,被设置为 35000——这显然是 IIS 6.5 的“最佳实践”。

我不确定为什么性能下降了。在我看来,这些配置更改正在阻止 IIS 应用程序获取所需的所有内存,从而导致它们陷入困境。但是,显然,我允许相关应用程序使用 16GB - 这肯定与“0”相同,因为这是他们能够从 16GB 上的“无限”设置中获取的最大内存RAM 托管虚拟机。

将内存限制设置回“0”会提高性能,而将请求限制设置回会稍微提高一点。

奇怪的是,无论这些设置是什么,机器内存使用似乎都没有偏离。

不幸的是,我不知道如何正确配置它,因为有问题的要求没有任何限制。除了找到关于设置多少数量的建议之外,我也无法找到一个具体的资源来说明如何自己解决这个问题——也就是说,我可以手动插入别人的价值观,但我不清楚我是如何做到的应该能够查看我自己的应用程序并根据某些已知值得出结果。我确实知道 w3wp 进程是一个管理应用程序池的 IIS 工作进程——但它似乎只需要约 228,000K 的峰值——无论如何,根据任务管理器。

我应该如何配置这些内存处理设置,以及我应该根据什么做出决定?我不确定为什么如果我为它提供系统上的最大内存量(16GB),它的性能会不如我提供无限量的内存(无论如何它本身都会受到系统内存限制 16GB 的约束)。

windows team-foundation-server iis application-pools iis-10
  • 2 个回答
  • 3851 Views
Martin Hope
rodrigogq
Asked: 2016-11-17 05:59:14 +0800 CST

在服务器上安装 .NET Framework 4.6.2 是否会重置 IIS 运行的应用程序池?

  • 1

在我们的生产数据中心,我们有在 ASP.NET 2.0 上运行的 IIS 池。

我们需要在这些服务器上安装新的 WebApp,但它们使用 .NET Framework 4.6.2。我们无法停止我们的 IIS 池,但我们需要安装新框架才能运行这些新应用程序。

有谁知道/有确凿的证据表明我可以在不重置任何正在运行的应用程序池的情况下安装框架?或者我应该寻找一个部署窗口?(这意味着圣诞节之后)。

EDIT .Net Framework 4.5 已经安装在这些服务器上。

installation iis application-pools .net dotnet-framework
  • 1 个回答
  • 3100 Views
Martin Hope
GordonB
Asked: 2012-06-08 04:04:53 +0800 CST

SPN、Kerberos 和 IIS

  • 0

我有一个 MyWebServer 的 dns 别名,它指向运行 iis 7.5 的 win 2008 r2 机器的 ip。我为域用户设置了正确的 HTTP spn,该域用户有权使用 kerberos 委派给指定的 HTTP web 服务。
IIS 在顶层配置为使用内核模式身份验证和使用 AppPoolCredentials。

iis 框上的主要应用程序在具有我的域用户身份的应用程序池下运行。该应用程序按预期工作,发出了正确的 kerberos 票证,并且该应用程序能够完美地委托 Windows 用户身份。

然而,还有其他应用程序使用相同的 IIS 网站,但使用作为网络服务运行的不同应用程序池。所有应用程序都设置为仅使用 Windows 身份验证(匿名关闭)。

每当我在 IE 中点击这些应用程序之一时,我都会收到登录提示。输入正确的域凭据会在 3 次登录尝试后导致 401 错误。Web 服务器被 IE 识别为位于本地 Intranet 区域中,并且 IE 被配置为自动登录到该区域中的服务器。在访问这些应用程序时,我也会获得一张有效的 kerberos 票证,即使它们本身永远不需要票证。

现在,当我将应用程序池标识设置为其他应用程序的域用户,并执行 IISreset 时...应用程序按预期工作。

现在,我的问题是......这是预期/预期的吗???
我是否无法在已使用域用户帐户的 SPN 设置的 IIS 网站中运行混合应用程序?我以前混合使用 HTTP/别名 Machine spn 这样的网站,但到目前为止一直在努力处理 HTTP/别名域/用户设置。


编辑:布伦特的回答是正确的。我找到了这篇详细阐述的 Microsoft 文章。 http://support.microsoft.com/kb/871179

一项服务的 SPN 只能与一个帐户相关联。因此,如果您使用此建议的解决方案,则在不同域用户帐户下运行的任何其他应用程序池不能仅与集成 Windows 身份验证一起使用。


如果您有多个在不同域用户帐户下运行的应用程序池,要解决此问题,如果您只想使用集成 Windows 身份验证,则必须强制 IIS 使用 NTLM 作为您的身份验证机制。

iis-7.5 application-pools kerberos windows-server-2008-r2 spn
  • 1 个回答
  • 2840 Views
Martin Hope
Calvin Fisher
Asked: 2012-05-12 07:24:59 +0800 CST

如何在没有 iisreset 的情况下回收 IIS6 上的所有应用程序池?

  • 0

有没有一种方法可以一次回收 IIS6 服务器上的所有应用程序池,而无需使用iisreset或手动回收每个应用程序池?

iis-6 application-pools
  • 3 个回答
  • 6516 Views
Martin Hope
Morten Louw Nielsen
Asked: 2010-04-07 13:09:10 +0800 CST

在 SR2003 上从 IIS6 创建计划任务的问题

  • 0

我也在stackoverflow上发布了这个问题,但也会在这里尝试,因为它可能与系统更相关

我正在使用 .NET 编写一个 Web 应用程序。webapp 使用 System.Diagnostics.Process 类创建计划任务,并使用参数调用 SCHTASKS.EXE。

我已将应用程序池上的身份更改为特定域用户。域用户是所有四个网络服务器的本地管理员。

从 webserver01 我在 webserver01 到 webserver04 创建任务。

它可以完美运行 3-5 天,但随后会中断。它在消息框中给了我以下错误消息:

“应用程序未能正确初始化(0xc0000142)。单击确定以终止应用程序。”

如果我的系统处于损坏状态,并且我将应用程序池的身份更改为域管理员,它就可以工作。当我将其更改回我的域用户时,它再次中断。如果我重新启动服务器,它会再次运行相同的天数,但会再次中断。

这似乎是一个与权限相关的问题。我只是不明白为什么它有时有效,有时无效。

我希望外面有人已经看到了这个问题!

期待着听到您的意见!

亲切的问候,

丹麦莫滕

windows-server-2003 scheduled-task iis-6 application-pools .net
  • 1 个回答
  • 336 Views
Martin Hope
Rodnower
Asked: 2010-04-07 07:03:29 +0800 CST

Windows 2008 上 IIS 7 应用程序池中的 .NET Framework 版本

  • 0

我在 Windows 2008 上的 IIS 7 上有 Web 服务。
此 Web 服务必须是 .NET Framework 3.5 的 dll(当我尝试浏览网站时使用 System.Linq 时出现错误)

我发现可以更改 .NET Framework 版本的唯一地方是应用程序池管理,但我仅有的两个选项是:无管理代码和 .NET Framework 2。
在添加/删除程序中,我安装了 .NET Framework 3.5并且事件对它进行修复和 iisreset,但我仍然只有应用程序池管理中的选项。

有任何想法吗?

谢谢你的前面。

windows-server-2008 iis-7 application-pools .net
  • 1 个回答
  • 1666 Views
Martin Hope
user39550
Asked: 2010-04-03 06:18:38 +0800 CST

每月创建一个应用程序池以限制问题范围

  • 2

我在一个应用程序池上运行了大约 360 个站点。现在我知道我们在其中一个网站上遇到了编码问题,我们是否不小心编码了内存泄漏。所以发生的事情是站点运行,内存泄漏开始,很快应用程序池就会耗尽内存。然后缓慢但肯定地,其余的 360 个站点开始像多米诺骨牌效应一样下降。我知道问题的根源是一些糟糕的编码,我们会修复它,但我在想,我们可以每月创建一个新的应用程序池,而不是关闭所说的 360 个站点,我们创建的每个站点都会进入那个应用程序池个月的应用程序池。首先,这将问题的范围限制在 5 到 20 个站点,其次,如果一个站点开始出现问题,我们不会关闭所有 360 站点。

这种想法是否有任何问题,可能的后果?提前致谢!耶利米

iis application application-pools
  • 2 个回答
  • 119 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve