2

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

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

这有效,但仅在下一次部署之前有效。部署似乎将机器键值重置为其默认值。部署过程非常简单:

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

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

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

谢谢

帕维尔

4

2 回答 2

1

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

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

于 2013-04-30T04:45:36.547 回答
1

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

于 2013-05-01T00:37:22.677 回答