我正在尝试远程连接到Quartz调度程序,因此我可以获得计划运行的作业列表。在服务器应用程序中,我使用了以下代码:
NameValueCollection properties = new NameValueCollection();
properties.Add("quartz.scheduler.instanceName", "OlScheduler");
properties.Add("quartz.scheduler.instanceId", "Ol");
properties.Add("quartz.threadPool.type", "Quartz.Simpl.SimpleThreadPool, Quartz");
properties.Add("quartz.threadPool.threadCount", "5");
properties.Add("quartz.threadPool.threadPriority", "Normal");
properties.Add("quartz.scheduler.registryPort", "1099");
properties.Add("quartz.scheduler.rmi.export", "true");
properties.Add("quartz.scheduler.rmi.registryHost", "localhost");
properties.Add("quartz.scheduler.rmi.registryPort", "1099");
ISchedulerFactory sf = new StdSchedulerFactory(properties);
IScheduler sched = sf.GetScheduler();
并将其作为服务安装并运行,然后从我使用的另一个应用程序远程连接到它:
properties["quartz.scheduler.instanceName"] = "RemoteClient";
properties["quartz.threadPool.type"] = "Quartz.Simpl.SimpleThreadPool, Quartz";
properties["quartz.threadPool.threadCount"] = "5";
properties["quartz.threadPool.threadPriority"] = "Normal";
properties["quartz.scheduler.proxy"] = "true";
properties["quartz.scheduler.proxy.address"] = "http://170.20.20.17:1099/OIService";
IScheduler sched = new StdSchedulerFactory(properties).GetScheduler();
我得到的错误是: “无法连接到远程服务器”和“无法建立连接,因为目标计算机主动拒绝它172.22.22.17:1099” 我错过了什么?我正在使用带有RamJobStore的Quartz.net 1.1版,我的防火墙已关闭。 我认为这是我使用错误的端口。任何帮助表示赞赏
答案 0 :(得分:3)
免责声明:我对Quartz Scheduler一无所知! :)
但是,如果您怀疑可能有错误的端口号,则可以登录远程服务器并从命令行运行
netstat -b
这将打印出进程正在使用的端口。希望这将允许您验证端口号。
如果端口号正确,但您仍无法与远程服务器通信,则可以尝试以下几种方法:
ping.exe [xxx.xxx.xxx.xxx]
以查看远程服务器是否响应(*)tracert [xxx.xxx.xxx.xxx]
以查看您是否在两台服务器之间有路由(*)这并不总是决定性的,因为远程服务器或中间的网络硬件可能配置为不响应。