当服务器出现故障时路由 exe 文件以具有备份目标

Routing a exe File to have a backup target when servers fail

我想知道有什么解决方案可以提供服务器的快捷方式,基本上是一个 exe,多于 1 个目标路径,基本上在 2 个服务器上有相同的应用程序,这样当一个服务器出现故障时,exe 就会转到另一个目标路径并找到快捷方式指向的完全相同的应用程序 exe。任何解决方案将不胜感激。谢谢

测试文件在首选服务器上是否存在(可访问)。如果是,请启动它。如果不是,请从备份服务器启动它。您必须将脚本路径调整为 UNC 路径或映射的驱动器,具体取决于您使用的是什么。未测试:

set "_path=path_to_exe"
set server1=hostname1
set server2=hostname2

if exist "%server1%\%_path%\file.exe" (
   "%server1%\%_path%\file.exe"
   ) else (
   "%server2%\%_path%\file.exe"
   )

仅靠捷径是不可能做到的。 您可以找到一些开源 HA(高可用)或集群解决方案。

答案为我提供了在我的情况下工作的指南,我想出了一个来自本地 C: 驱动器的 c# 应用程序 运行:

        string Directory1 = @"\sqlsvr01\Releases\Filename";
        string Directory2 = @"\sqlsvr02\Releases\filename";

        string server1 = @"\sqlsvr01\Releases\Filename\setup.exe";
        string server2 = @"\sqlsvr02\Releases\Filename\setup.exe";


        //look for the file on sqlsvr01 - main publish folder
        if (Directory.Exists(Directory1))
        {
            Process.Start(server1);
            Console.WriteLine("SQLSVR01 reached");
            Console.WriteLine("Executing setup.exe from SQLSVR01");
            Console.ReadLine();

            


        }//if the folders are not found in sqlsvr01 - look for the file on 
          //sqlsvr02 - secondary publish folder
        else if (Directory.Exists(Directory2))
        {
            Process.Start(server2);
            Console.WriteLine("sqlsvr02 reached");
            Console.WriteLine("Executing setup.exe from sqlsvr02");
            Console.ReadLine();

           
        }
        else
        {
            Console.WriteLine("None accessible");
            
        }