gpt4 book ai didi

c# - 哪些 .NET 功能允许我使用 "reload"和 "restart"嵌入式服务器?

转载 作者:行者123 更新时间:2023-12-02 19:35:43 26 4
gpt4 key购买 nike

哪些 .NET 功能允许我加载“重新加载”和“重新启动”嵌入式服务器?我不知道如何很好地问这个问题。我正在编写一个需要定期更新附加功能的服务器。我希望它在不同端口上运行 2 台同一服务器(用于冗余),然后当我推出新更改时,关闭其中一台服务器,加载新代码,运行测试,开始将流量转移到新版本,然后开始第二台服务器上的过程相同。

我想也许 AppDomains 或 MEF 可能是我正在寻找的,但对这些技术了解不多。我想知道 .NET 框架中是否还有其他我所缺少的东西可以提供帮助。

有什么建议吗?如果我对 AppDomains 或 MEF 不感兴趣,请随时告诉我。

最佳答案

我在 Windows 服务中使用 AppDomains 执行此操作。该服务只有网络 IO 代码以及下载新版本和实例化应用程序域的代码。所有真正的代码都位于众所周知且不变的接口(interface)后面,该接口(interface)具有“处理请求”代码,以及用于长期本地状态的序列化/反序列化机制。

结果是单个服务可以永久运行。当新版本可用并通过冒烟测试时,它可以简单地更改单个引用(编码/解包实例),然后嘿,很快:升级了。然后它可以卸载旧的应用程序域。

为了实现冗余(硬件等),我们仍然使用多个节点,并在客户端应用负载平衡(尽管您也可以在 NLB 上进行此操作;这次我们有理由不这样做)。

关于c# - 哪些 .NET 功能允许我使用 "reload"和 "restart"嵌入式服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12013751/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com