首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ServerManager,正在创建应用程序池,未设置标识

ServerManager,正在创建应用程序池,未设置标识
EN

Stack Overflow用户
提问于 2016-04-01 20:25:11
回答 1查看 1.2K关注 0票数 4

我正在尝试使用ServerManager类创建应用程序池。这是我的代码:

代码语言:javascript
复制
using (ServerManager serverManager = new ServerManager())  {
   if (!serverManager.ApplicationPools.Any(p => p.Name == poolName))  {
     ApplicationPool newPool = serverManager.ApplicationPools.Add(poolName);
     newPool.ManagedRuntimeVersion = "v4.0";
     newPool.ManagedPipelineMode = ManagedPipelineMode.Integrated;
     newPool.ProcessModel.IdentityType = ProcessModelIdentityType.SpecificUser;
     newPool.ProcessModel.UserName = user;
     newPool.ProcessModel.Password = pass;
     serverManager.CommitChanges();
   }
}

应用程序池已创建,但没有为其设置标识- IIS管理器中应用程序池表中的标识列为空。我做错了什么?

用户的形式是domain\username,并且传递的凭据是正确的(代码的另一部分会检查这些凭据)。

EN

回答 1

Stack Overflow用户

发布于 2021-08-04 16:17:52

看一下这段代码。它正在为我工作:

代码语言:javascript
复制
public static ApplicationPool GetOrCreateApplicationPool(ServerManager serverManager, string applicationPoolName, string userName, SecureString password)
{
    if (!serverManager.ApplicationPools.Any(p => p.Name.Equals(applicationPoolName)))
    {
        ApplicationPool appPool = serverManager.ApplicationPools.CreateElement();
        appPool.Name = applicationPoolName;
        appPool.ManagedPipelineMode = ManagedPipelineMode.Integrated;
        appPool.ManagedRuntimeVersion = "v4.0";

        if(password != null)
        {
            if (!(string.IsNullOrWhiteSpace(userName) || string.IsNullOrWhiteSpace(password.ToPlainTextString())))
            {
                appPool.ProcessModel.IdentityType = ProcessModelIdentityType.SpecificUser;
                appPool.ProcessModel.UserName = userName;
                appPool.ProcessModel.Password = password.ToPlainTextString();
            }
        }                

        serverManager.ApplicationPools.Add(appPool);
        serverManager.CommitChanges();
    }

    return serverManager.ApplicationPools.First(p => p.Name.Equals(applicationPoolName));
}

当然,还有一些额外的方法,比如可能导致这段代码不能运行的扩展,但我的想法是存在的,并且目前正在我的应用程序上运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36356296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档