有没有办法以编程方式确定服务应用程序正在使用哪个应用程序池?

此外,我想获取有关应用程序池正在使用的服务帐户的信息。

有帮助吗?

解决方案

在powershell中使用:

Get-SPServiceApplication | FT DisplayName, ApplicationPool

如果您想在自己的程序中获取该属性,您需要获取服务应用程序并将其转换为 SPIisWebServiceApplication 其中有 应用程序池 财产

其他提示

可以在powershell中使用以下命令:

Get-SPServiceApplication | ForEach-Object { $_.ApplicationPool}
.

这会导致服务应用程序的名称和应用程序池的帐户。

您可以使用SharePoint管理shell获取信息:

Get-SPServiceApplication | Select Name, @{Name="SPAppPoolName"; Expression={$_.ApplicationPool.Name}},  @{Name="IISAppPoolName"; Expression={$_.ApplicationPool.Id}}, @{Name="ProcessAccountName"; Expression={$_.ApplicationPool.ProcessAccountName}}
.

此命令使用表达式从App Pool中提取所需的部件。

  • name =服务应用程序的名称
  • spappoolname = SharePoint使用了专用名称,您可以在CA内部使用,但在IIS管理视图中不可见
  • iisappoolname =这是SP app池的ID,如果您在服务器上运行的服务器上查看IIS管理器,则用作App Pool的名称 processaccount=这是服务帐户应用程序池在下运行

    您可以在applicationhost.config(C:\Windows\System32\inetsrv\config\applicationHost.config)中检查(不编辑)应用程序池的配置。搜索ID或导航到XML元素“ApplicationPools”。

你可以使用 System.Security.Principal.WindowsIdentity.GetCurrent().Name 识别当前应用程序正在运行的身份。 这个链接 提供了一个很好的实用程序,它显示运行 aspx 的身份。

或者读这个 问题 :)

希望能帮助到你

许可以下: CC-BY-SA归因
scroll top