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