我们(实际上是IT合作伙伴)最近更改了我们拥有的网站养殖网站的某些DNS,以便两个生产服务器在两者之间进行轮询DNS切换。在这个切换之前,我们没有真正遇到过WebResource.axd文件的问题。自从切换,当我们点击实时公开的URL,我们得到一个错误:
CryptographicException
Padding is invalid and cannot be removed.
当我们打到特定的服务器本身,他们负载正常。我研究了这个问题,似乎因为他们在两个服务器之间共享资产,我们需要在web.config中为每个服务器有一个一致的machineKey,以便他们可以在两者之间一致地加密和解密。我的问题是:
>我可以通过服务器上的工具生成machineKey,还是我需要编写代码来做到这一点?
>我只需要添加machineKey到每个服务器上的web.config,或者你认为我需要做任何其他事情,使两个服务器在一起工作? (两个web.config目前没有machineKey)
解决方法
这应该回答:
http://msdn.microsoft.com/en-us/library/ff649308.aspx#paght000007_webfarmdeploymentconsiderations
简而言之,要设置机器密钥,请参考以下链接
http://docs.orchardproject.net/Documentation/Setting-up-a-machine-key
并将以下行添加到system.web标记下的所有Web服务器中的web.config文件(如果它不存在)。
<machineKey validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7 AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B" decryptionKey="ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F" validation="SHA1" decryption="AES" />
请确保您有计算机密钥和web.config文件的永久备份