我正在尝试在同一地址上的两个独立的HttpListener实例之间无缝切换。目前,在停止实例1并启动实例2之后,有几秒钟的停机时间(用户将得到404)(显然,如果实例2在实例1关闭之前启动,我得到经典的“已经注册了http” .sys“错误)。
有关如何在同一地址无缝切换(无停机)的任何想法?
答案 0 :(得分:1)
这里的经典答案是外部负载均衡器,例如HAProxy,它可以在多台机器,进程,端口,主机等之间分配负载。例如,即使在一台机器上,您可以在不同的端口上有两个实例(与客户端认为它们正在联系的内容无关),并通过HAProxy切换到它们的负载。这会自动处理所有端口/主机重映射。
如果你想要一个进程(例如服务),那么这里的一个技巧就是使用AppDomain:
有点乱(你需要担心为每个版本的应用程序创建临时位置等),但可能非常有效。