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

Iis 部署之间不保留手动生成的MachineKey,iis,asp.net-mvc-4,octopus-deploy,Iis,Asp.net Mvc 4,Octopus Deploy,我有两个web服务器(Windows 2012)和一个网站(ASP.NET MVC 4)。为确保ASP.NET加密正确工作,我执行了以下操作: 使用八达通将应用程序部署到两台服务器 转到第一台服务器,选择网站,单击机器密钥图标,取消选中所有复选框,单击生成密钥,然后单击应用 然后我将生成的密钥复制到另一台机器上 这是有效的,但直到下一次部署。部署似乎将机器键值重置回其默认值。部署过程非常简单: 停止应用程序池 删除应用程序文件夹的内容 将新文件复制到应用程序文件夹 启动应用程序池 作为一

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

  • 使用八达通将应用程序部署到两台服务器
  • 转到第一台服务器,选择网站,单击机器密钥图标,取消选中所有复选框,单击生成密钥,然后单击应用
  • 然后我将生成的密钥复制到另一台机器上
这是有效的,但直到下一次部署。部署似乎将机器键值重置回其默认值。部署过程非常简单:

  • 停止应用程序池
  • 删除应用程序文件夹的内容
  • 将新文件复制到应用程序文件夹
  • 启动应用程序池
作为一种解决方法,我在web.config中有密钥,但由于明显的原因,这还远远不够完美

知道为什么要重置这些值吗

谢谢


Pawel

IIS将机器钥匙放在哪里?进入web.config还是进入machine.config


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

@JasonStangroome为我解决了这个问题。我只是忘记了IIS管理器会修改web.config,所以每次部署后自定义值都会消失