2

有没有办法以编程方式确定服务应用程序在哪个应用程序池上运行?到目前为止,我还没有真正找到太多。任何帮助表示赞赏!

4

3 回答 3

1

IIS 将应用程序分配给应用程序池。我不知道以编程方式或通过配置更改应用程序池的方法。

编辑: 我收回它看起来这是可能的,这篇文章可以帮助你: Setup IIS programmaticaly

于 2012-10-02T21:44:59.653 回答
1

这是 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)

于 2012-10-02T21:47:00.187 回答
0

有人在此处向我提供了 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;
        }
    }
}
于 2012-10-03T15:22:36.280 回答