我提前几天看到了一个案例研究。它与Web应用程序体系结构有关。
这是场景,
1000个Web应用程序使用单个Web服务。此Web服务托管在特定服务器上。如果更改了Web服务托管位置,其他应用程序如何了解此更改?
将它保存在web.config中似乎不是一个可行的解决方案,因为我们需要修改所有应用程序的web.config文件。
在我看来,将这些设置保存在一个公共存储库中并让所有应用程序将它用于Web服务地址,但同样存在存储此公共存储库的问题。
我很想知道如何通过更好的性能实现这一目标。
提前感谢任何建议。
答案 0 :(得分:1)
您是否可以完全访问或控制使用该Web服务的所有Web应用程序?如果是这样,你可以有一个脚本或一些自定义代码,它们会立即更新所有的web.config。这看起来太多了,但实际上你通过这种方式可以获得更多的控制权,最终你也可以指向新网址,只留下一些应用程序,并将其他应用程序留在另一个网址上。
在集中式数据库中设置的想法可以让您更快地进行更新传播,如果出现错误也可能会很糟糕,然后您将所有应用程序引用到同一个地方而无法将其拆分。然后,您无论如何都要从所有这些数据库连接到一个集中式数据库,也许您应该使用该数据库的连接字符串为其web.config添加一个密钥,然后,如果该数据库无法访问或已关闭, Web应用程序将无法使用Web服务,因为它们无法获取它的URL。
我会选择web配置,最终你可以有一个设置帮助器类,它抽象了该url的检索,因此UI或前端不知道该url来自何处。
无论如何,您是否计划经常更改网络服务的网址?最好将它复制到一个新的网址,但也保持在当前的网址上一段时间可用吗?
web.config方法的另一个优点是,每次更新并保存它时,重新启动应用程序,而数据库中的更改可能需要一段时间才能检测到,以防您有一些缓存机制,
希望这会有所帮助。
的Davide。