同步IIS Web服务器配置

时间:2016-09-27 23:21:21

标签: c# iis web

我们为MS SQL Server数据库支持的应用程序提供了多个负载均衡的IIS Web服务器。我们将应用配置信息存储在数据库中。在应用程序运行时,我经常更改配置,并且需要将更改传播到其他Web服务器。有没有办法做到这一点?我一直在通过SignalR来做这件事(提醒其他服务器发生了变化,他们应该刷新他们的配置)但是SignalR并不总是可靠的,有时一个服务器没有收到消息。有更好的解决方案吗?

谢谢

1 个答案:

答案 0 :(得分:0)

<强>更新

我现在理解您需要传播应用程序级配置更改。

正如您所提到的,您可以使用SignalR。这需要一个中央服务器来托管websocket连接,但是有一个好处是&#34;即时&#34;。

或者,如果您的要求很简单,那么短期的内存缓存就足够了。

如果它比这复杂,我建议调查事件队列(MSMQ,RabbitMQ)。在此模型中,更改配置的实例会将事件发布到队列,该事件可由后台线程上的其他实例使用。

原始答案

Microsoft Web Deploy是为了做到这一点而建立的。它支持跨服务器同步站点,甚至支持应用程序池设置和SSL证书。

IIS文档站点有一个与您的用例相关的特定页面:Synchronize IIS

配置Web Deploy涉及很多,所以我不打算在这里解释一下,但出于后人的原因,将本地站点同步到远程计算机的命令将是:

msdeploy.exe -verb:sync 
             -source:apphostconfig="Default Web Site" 
             -dest:apphostconfig="Default Web Site",computername=Server1

(为了便于阅读,该命令分为多行)

作为一种完全替代的方法,您还可以使用&#34; pull配置&#34;系统如Powershell Desired State ConfigurationChef