部署之间不会保留手动生成的MachineKey

时间:2013-04-30 03:37:55

标签: iis asp.net-mvc-4 octopus-deploy

我在每个服务器上都有2个Web服务器(Windows 2012)和一个网站(ASP.NET MVC 4)。为确保ASP.NET加密正常工作,我执行了以下操作:

  • 使用Octopus
  • 将应用程序部署到两台服务器
  • 去第一台服务器,选择网站,点击机器密钥图标,取消选中所有复选框,点击生成密钥,然后点击申请
  • 然后我将生成的密钥复制到另一台机器

这有效但直到下一次部署。部署似乎将计算机密钥值重置为其默认值。部署过程非常简单:

  • 停止应用程序池
  • 删除应用文件夹的内容
  • 将新文件复制到app文件夹
  • 启动应用程序池

作为一种解决方法,我在web.config中有密钥,但由于显而易见的原因,这远非完美。

为什么要重置这些值的想法?

由于

的Pawel

2 个答案:

答案 0 :(得分:1)

IIS放置机器密钥在哪里?进入web.config或进入machine.config?

还尝试将Octopus变量OctopusNotAWebSite设置为true并手动重新指向IIS。 Octopus可能会以某种方式重置IIS应用程序。

答案 1 :(得分:1)

@JasonStangroome为我解决了这个问题。我只是忘了IIS管理器修改了web.config,这就是为什么自定义值在每次部署后都会消失的原因。