使用Microsoft.Web.Administration上的用户名/密码创建AppPool

时间:2013-09-19 15:04:46

标签: c# .net iis-7.5 web-administration

我正在使用以下代码创建应用程序池:

var appPool = serverManager.ApplicationPools.Add(Name);
appPool.ProcessModel.IdentityType = ProcessModelIdentityType.SpecificUser;
appPool.ProcessModel.UserName = UserName;
appPool.ProcessModel.Password = Password;
serverManager.CommitChanges();

但不知何故,密码出了问题,我不知道是什么。 当我查看applicationHost.config时,生成的xml如下所示:

<processModel 
  identityType="SpecificUser" 
  userName="domain1\user1" 
  password="[enc:IISWASOnlyAesProvider:6RqsTbCqVXXnr37jLOrOjg==:enc]" />

如果我通过IIS管理器手动添加相同的用户(domain1 \ user1),xml看起来像这样:

<processModel 
  identityType="SpecificUser" 
  userName="domain1\user1"
  password="[enc:IISWASOnlyAesProvider:OCkfPehXB3p8ahXXtaoW3vLTpFY/EbW5IFo39h5iVE2azpJXXvkArbeeuwI5bvBG:enc]" />

看起来密码在通过代码创建时以不同的方式加密,但我在网络上找不到任何与此相关的主题。

我做错了什么或我需要做些什么来使代码工作?

2 个答案:

答案 0 :(得分:1)

我试图重现它并且它一直有效。对于以下问题感到抱歉,但它对我自己发了几次:

您确定已经指定了正确的密码吗?

答案 1 :(得分:0)

您可以像这样使用用户名和密码创建应用程序池

using (ServerManager serverManager = new ServerManager())
           {
              
                   ApplicationPool newPool = serverManager.ApplicationPools.Add("Poolnam1");
                   newPool.ManagedRuntimeVersion = "v4.0";
                   newPool.ProcessModel.IdentityType = ProcessModelIdentityType.SpecificUser;
                   newPool.ProcessModel.UserName = accountUserName;
                   newPool.ProcessModel.Password = accountPassword;
                   serverManager.CommitChanges();

           
           }