Quartz.NET의 클라이언트/서버 구현이 제대로 작동하지 않습니다.Quartz.NET, "원격 스케줄러와 통신하는 동안 오류가 발생했습니다."
저는 Quartz를 서비스 (ServerB)로 실행하는 서버 인 ServerA와 ASP.NET 응용 프로그램 (ServerC)을 호스트하는 서버를 가지고 있습니다.
나는 모든 자습서를 따라하고 코드에 대해 자세히 조사했지만 잘못된 것을 알 수는 없다. 서버가 확실히 수신 중이며 포트가 ServerC에서 열려 있음을 확인할 수 있습니다. 관련된 방화벽이 없습니다. 서비스를 실행하는
서버 B는 다운로드 패키지 (Quartz.Server.Service)에 포함 된 다음과 같은 설정 파일의 설정이 있습니다
<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
웹 서버에서 텔넷 상자를 열고 쿼츠 서버에 연결하면 서비스가 확실히 응답합니다. 몇자를 입력하면 Quartz에서 오류가 발생합니다.
이 정보가 도움이됩니까? 나는. 연결 문제가 아닙니다.
Telnet http://www.freeimagehosting.net/uploads/3bd8cd3f53.png
quartz 서비스 또는 원격으로 연결 한 응용 프로그램에서 dll 파일이 누락 되었습니까? dll 이름을 공유 하시겠습니까? 석영 서버에 원격으로 연결하는 동안 동일한 문제가 발생합니다. – user2748614
그것은 서버에 있었지만 어떤 DLL인지는 기억하지 못했습니다. Quartz.Core.dll, Quartz.Service.dll 또는 IJob 인터페이스를 구현 한 어셈블리 였을 것입니다. – enashnash