在Windows Server 2008 R2 Core上设置IIS 7.5共享configuration(使用encryption值)

简单的问题:在PowerShell或appcmd中有没有办法通过导出IIS 7.5中的共享configuration来创buildConfigEncryptedKey.key?

现在,解释我为什么要这样做…

我们正尝试使用Windows Server 2008 R2 Core上的IIS 7.5的共享configurationfunction。

问题是,这项技术的每个指南都指的是通过IISpipe理器进行pipe理。 在Core上,只能远程执行此操作(而不是在服务器本身)。

此function(共享configuration)在远程pipe理时似乎不可用。

尽pipe如此,我们已经成功地手动设置了它(例如,我们自己设置c:\ windows \ System32 \ inetsrv \ config \ redirection.config)。 当我们尝试在特定帐户(用户名和密码)下运行应用程序池时,唯一的问题就出现了。 密码的存在提示IIS在共享applicationHost.config中encryption此值。

这在设置应用程序池的服务器上没有问题。 但是,当共享对中的其他服务器尝试启动应用程序池时,无法解密applicationHost中的密码。

事件日志中的错误消息读取(系统/ WAS /事件ID 5021):

应用程序池mysitename的身份无效。 为身份指定的用户名或密码可能不正确,或者用户可能没有批处理login权限。 如果身份未被更正,应用程序池将在应用程序池收到第一个请求时被禁用。 如果批处理login权限导致该问题,则Windows进程激活服务(WAS)可以重试login之前,必须在授予权限后更改IISconfiguration存储中的标识。 如果在处理应用程序池的第一个请求之后身份保持无效,应用程序池将被禁用。 数据字段包含错误编号。

另请注意,尝试通过IISpipe理器UI在第二台服务器上设置标识会导致此错误对话框:

执行此操作时发生错误。

细节:

坏数据。 (从HRESULTexception:0x80090005)

通常(通过IISpipe理器UI完成时,我们不能在Core上使用),创build一个文件调用ConfigEncryptedKey.key。 这似乎与applicationHost.config中解密应用程序池用户密码所需的密钥通信到第二台服务器。

因为我们不能使用UI来做到这一点,有没有办法做到这一点编程?

您应该能够使用下面的共享configuration指南中的附录3技术: http : //learn.iis.net/page.aspx/264/shared-configuration/

简而言之:ASPNET_REGIIS -px导出目标框上的IISConfigurationKey和IISWasKey以及-pi,以导入并同步它们。