在web.config中加密episerver标记

时间:2013-02-21 16:51:03

标签: encryption msbuild episerver

我正在使用EPiServerMSBuild为公共aspnet_regiis网站的构建流程添加加密功能。大多数情况下,它进展顺利,但在加密web.config中的episerver标记时却没有。

命令:

aspnet_regiis -pef "episerver" "C:\Path\to\my\site" -prov "RsaProvider"

在我的开发机器上(安装了EPiServer)它运行没有问题,但是在我的构建机器上(没有安装它),我明白了:

Could not load file or assembly 'EPiServer.Configuration, Version=6.1.379.0, Culture=neutral, PublicKeyToken=8fe83dea738b45b7' or one of its dependencies. The system cannot find the file specified.

其他标记(如connectionStrings)在构建服务器上正确加密,因此所有密钥和访问都已到位。

我的猜测是,这是因为构建服务器上没有安装EPiServer,但是真的有必要安装EPiServer才能加密web.config吗?我认为加密只会读取web.config并加密所选标签中的文本?

有关如何让我的构建服务器加密web.config中的episerver标记的任何提示都将不胜感激。

1 个答案:

答案 0 :(得分:1)

当您安装EPiServer时,它会在GAC中添加许多dll,这就是它在本地计算机上运行而不在构建计算机上运行的原因。

web.config中的部分是一个自定义配置部分(在此处详细了解它们(How to: Create Custom Configuration Sections Using ConfigurationSection)在EPiServer.Configuration.dll中定义。您可以将其添加为项目的参考(设置Copy)从本地到真实,或者您可以在您的构建机器上安装EPiServer。我已经完成了后者,因为构建机器不会阻塞任何EPiServer dll,无论您是否已将它们添加到您的项目中。