我正在使用以下代码创建应用程序池:
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]" />
看起来密码在通过代码创建时以不同的方式加密,但我在网络上找不到任何与此相关的主题。
我做错了什么或我需要做些什么来使代码工作?
答案 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();
}