如何确定在C#中运行SharePoint service应用程序的应用程序池



有没有一种方法可以通过编程确定服务应用程序在哪个应用程序池上运行?到目前为止,我还没有发现太多关于这方面的信息。感谢您的帮助!

IIS将应用程序分配给应用程序池。我不知道有什么方法可以通过编程或配置来更改应用程序池。

编辑:我收回这一点,看起来这是可能的,这篇文章可能会帮助您:以编程方式设置IIS

这是IIS6的示例代码,我不确定它是否适用于Sharepoint或其他版本的IIS。。。

public string GetAppPoolName() {
string AppPath = Context.Request.ServerVariables["APPL_MD_PATH"];
AppPath = AppPath.Replace("/LM/", "IIS://localhost/");
DirectoryEntry root = new DirectoryEntry(AppPath);
if ((root == null)) {
return " no object got";
}
string AppPoolId = (string)root.Properties["AppPoolId"].Value;
return AppPoolId;
}

复制自如何检测我当前运行的应用程序池?(IIS6)

有人在这里向我提供了SharePoint特定的答案,但感谢大家的投入。以下代码是我如何获得应用程序池的:

foreach (SPService service in SPFarm.Local.Services)
{
if (service.Name.Equals("ServiceName"))
{
foreach (SPServiceApplication serviceApp in service.Applications)
{
SPIisWebServiceApplication webServiceApp = (SPIisWebServiceApplication) serviceApp;
SPIisWebServiceApplicationPool appPool = webServiceApp.ApplicationPool;
}
}
}

最新更新