gpt4 book ai didi

.net - quartz .NET, "Error communicating with remote scheduler."

转载 作者:行者123 更新时间:2023-12-04 15:37:39 30 4
gpt4 key购买 nike

我在让 Quartz.NET 的客户端/服务器实现工作时遇到问题。

我在 ServerA 上有一个 SQL Server,一个运行 Quartz 作为服务的服务器 (ServerB) 和一个托管 ASP.NET 应用程序的服务器 (ServerC)。

我遵循了所有教程并深入研究了代码,但我看不出我做错了什么。服务器肯定正在监听,我可以看到端口已从 ServerC 打开。不涉及防火墙。

运行下载包(Quartz.Server.Service)中包含的服务的ServerB具有以下配置文件设置:

<quartz>
<add key="quartz.server.serviceName" value="quartz" />
<add key="quartz.server.serviceDisplayName" value="Job Scheduler" />
<add key="quartz.scheduler.instanceName" value="RemoteServer" />
<add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz" />
<add key="quartz.threadPool.threadCount" value="10" />
<add key="quartz.threadPool.threadPriority" value="Normal" />
<add key="quartz.scheduler.exporter.type" value="Quartz.Simpl.RemotingSchedulerExporter, Quartz" />
<add key="quartz.scheduler.exporter.port" value="5656" />
<add key="quartz.scheduler.exporter.bindName" value="QuartzScheduler" />
<add key="quartz.scheduler.exporter.channelType" value="tcp" />
<add key="quartz.jobStore.type" value="Quartz.Impl.AdoJobStore.JobStoreTX, Quartz" />
<add key="quartz.jobStore.driverDelegateType" value="Quartz.Impl.AdoJobStore.SqlServerDelegate, Quartz" />
<add key="quartz.jobStore.tablePrefix" value="qrtz_" />
<add key="quartz.jobStore.dataSource" value="db" />
<add key="quartz.dataSource.db.provider" value="SqlServer-20" />
<add key="quartz.dataSource.db.connectionString" value="Data Source=ServerA;Initial Catalog=dev;User ID=dev;Password=dev" />
<add key="quartz.jobStore.useProperties" value="true" />
<add key="quartz.jobStore.lockHandler.type" value="Quartz.Impl.AdoJobStore.UpdateLockRowSemaphore, Quartz" />
</quartz>

ASP.NET 应用程序具有以下配置:
<quartz>
<add key="quartz.scheduler.instanceName" value="RemoteClient" />
<add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz" />
<add key="quartz.threadPool.threadCount" value="5" />
<add key="quartz.threadPool.threadPriority" value="Normal" />
<add key="quartz.scheduler.proxy" value="true" />
<add key="quartz.scheduler.proxy.address" value="tcp://ServerB:5656/QuartzScheduler" />
</quartz>

我尝试了很多东西。有时我会收到一个错误,指出调度程序已经存在,而不是问题标题中的那个。

我在其他地方读过,由于线程问题,我应该在单例中创建调度程序,我已经这样做了:
    private static readonly ISchedulerFactory _schedulerFactory;
private static readonly IScheduler _scheduler;

static JobScheduleService() {
_schedulerFactory = new StdSchedulerFactory();
_scheduler = _schedulerFactory.GetScheduler();
}

public static IScheduler GetScheduler() {
return _scheduler;
}

我错过了什么? TIA

如果我在 Web 服务器上打开一个 telnet 框并连接到 quartz 服务器,那么该服务肯定会响应。如果我输入几个字符,Quartz 就会出错。

这有帮助吗? IE。不是连接问题?

Telnet

最佳答案

尽量不要设置任何quartz.threadpool.xxxxxx 属性。

关于.net - quartz .NET, "Error communicating with remote scheduler.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3216312/

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