2

我已经在127.0.0.1port上运行 Quartz 调度程序 Windows 服务大约 2 年了555。从几天前开始,我无法再启动我的服务。当我查看代码时,我发现我无法启动一个TcpChannel对象。

IChannel chan;
chan = new TcpChannel(props, null, formatprovider);

当我在我的 cmd 上执行 a时,我在ListeningUsednetstat中都找不到地址。我在防火墙上也找不到任何与此端口有关的新规则。

该服务基于 Quartz.net 调度程序。

服务日志:

2016-02-25 10:19:58,847 [9] INFO  Quartz.Impl.StdSchedulerFactory [(null)] - Quartz.NET properties loaded from configuration file 'C:\Users\pedram.mobedi\Documents\GitHub\Postbag\build\Debug\quartz.config'
2016-02-25 10:19:58,958 [9] INFO  Quartz.Util.DBConnectionManager [(null)] - Registering datasource 'default' with db provider: 'Quartz.Impl.AdoJobStore.Common.DbProvider'
2016-02-25 10:19:58,965 [9] INFO  Quartz.Impl.StdSchedulerFactory [(null)] - Using default implementation for object serializer
2016-02-25 10:19:58,996 [9] INFO  Quartz.Impl.StdSchedulerFactory [(null)] - Using custom data access locking (synchronization): Quartz.Impl.AdoJobStore.UpdateLockRowSemaphore
2016-02-25 10:19:59,002 [9] INFO  Quartz.Impl.StdSchedulerFactory [(null)] - Using default implementation for ThreadExecutor
2016-02-25 10:19:59,099 [9] INFO  Quartz.Core.SchedulerSignalerImpl [(null)] - Initialized Scheduler Signaller of type: Quartz.Core.SchedulerSignalerImpl
2016-02-25 10:19:59,107 [9] INFO  Quartz.Core.QuartzScheduler [(null)] - Quartz Scheduler v.2.2.4.400 created.
2016-02-25 10:19:59,128 [9] INFO  Quartz.Impl.AdoJobStore.JobStoreTX [(null)] - JobStoreTX initialized.
2016-02-25 10:19:59,263 [9] INFO  Quartz.Core.QuartzScheduler [(null)] - Scheduler QuartzScheduler_$_NON_CLUSTERED shutting down.
2016-02-25 10:19:59,270 [9] INFO  Quartz.Core.QuartzScheduler [(null)] - Scheduler QuartzScheduler_$_NON_CLUSTERED paused.
2016-02-25 10:19:59,287 [9] INFO  Quartz.Core.QuartzScheduler [(null)] - Scheduler QuartzScheduler_$_NON_CLUSTERED Shutdown complete.
2016-02-25 10:19:59,321 [9] ERROR Quartz.Server.QuartzServer [(null)] - Server initialization failed:Unable to bind scheduler to remoting.
Quartz.SchedulerException: Unable to bind scheduler to remoting. ---> System.Net.Sockets.SocketException: No such host is known
   at System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6)
   at System.Net.Dns.GetHostEntry(String hostNameOrAddress)
   at System.Runtime.Remoting.Channels.CoreChannel.GetMachineIp()
   at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.SetupMachineName()
   at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel..ctor(IDictionary properties, IServerChannelSinkProvider sinkProvider, IAuthorizeRemotingConnection authorizeCallback)
   at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel..ctor(IDictionary properties, IServerChannelSinkProvider sinkProvider)
   at System.Runtime.Remoting.Channels.Tcp.TcpChannel..ctor(IDictionary properties, IClientChannelSinkProvider clientSinkProvider, IServerChannelSinkProvider serverSinkProvider)
   at Quartz.Simpl.RemotingSchedulerExporter.RegisterRemotingChannelIfNeeded() in c:\Users\pedram.mobedi\Documents\GitHub\Postbag\Quartz.NET-2.2.4\src\Quartz\Simpl\RemotingSchedulerExporter.cs:line 120
   at Quartz.Simpl.RemotingSchedulerExporter.Bind(IRemotableQuartzScheduler scheduler) in c:\Users\pedram.mobedi\Documents\GitHub\Postbag\Quartz.NET-2.2.4\src\Quartz\Simpl\RemotingSchedulerExporter.cs:line 71
   at Quartz.Core.QuartzScheduler.Bind() in c:\Users\pedram.mobedi\Documents\GitHub\Postbag\Quartz.NET-2.2.4\src\Quartz\Core\QuartzScheduler.cs:line 375
   at Quartz.Core.QuartzScheduler.Initialize() in c:\Users\pedram.mobedi\Documents\GitHub\Postbag\Quartz.NET-2.2.4\src\Quartz\Core\QuartzScheduler.cs:line 352
   --- End of inner exception stack trace ---
   at Quartz.Core.QuartzScheduler.Initialize() in c:\Users\pedram.mobedi\Documents\GitHub\Postbag\Quartz.NET-2.2.4\src\Quartz\Core\QuartzScheduler.cs:line 366
   at Quartz.Impl.StdSchedulerFactory.Instantiate() in c:\Users\pedram.mobedi\Documents\GitHub\Postbag\Quartz.NET-2.2.4\src\Quartz\Impl\StdSchedulerFactory.cs:line 1046
   at Quartz.Impl.StdSchedulerFactory.GetScheduler() in c:\Users\pedram.mobedi\Documents\GitHub\Postbag\Quartz.NET-2.2.4\src\Quartz\Impl\StdSchedulerFactory.cs:line 1120
   at Quartz.Server.QuartzServer.GetScheduler() in c:\Users\pedram.mobedi\Documents\GitHub\Postbag\Quartz.NET-2.2.4\server\Quartz.Server\QuartzServer.cs:line 62
   at Quartz.Server.QuartzServer.Initialize() in c:\Users\pedram.mobedi\Documents\GitHub\Postbag\Quartz.NET-2.2.4\server\Quartz.Server\QuartzServer.cs:line 47 [See nested exception: System.Net.Sockets.SocketException (0x80004005): No such host is known
   at System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6)
   at System.Net.Dns.GetHostEntry(String hostNameOrAddress)
   at System.Runtime.Remoting.Channels.CoreChannel.GetMachineIp()
   at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.SetupMachineName()
   at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel..ctor(IDictionary properties, IServerChannelSinkProvider sinkProvider, IAuthorizeRemotingConnection authorizeCallback)
   at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel..ctor(IDictionary properties, IServerChannelSinkProvider sinkProvider)
   at System.Runtime.Remoting.Channels.Tcp.TcpChannel..ctor(IDictionary properties, IClientChannelSinkProvider clientSinkProvider, IServerChannelSinkProvider serverSinkProvider)
   at Quartz.Simpl.RemotingSchedulerExporter.RegisterRemotingChannelIfNeeded() in c:\Users\pedram.mobedi\Documents\GitHub\Postbag\Quartz.NET-2.2.4\src\Quartz\Simpl\RemotingSchedulerExporter.cs:line 120
   at Quartz.Simpl.RemotingSchedulerExporter.Bind(IRemotableQuartzScheduler scheduler) in c:\Users\pedram.mobedi\Documents\GitHub\Postbag\Quartz.NET-2.2.4\src\Quartz\Simpl\RemotingSchedulerExporter.cs:line 71
   at Quartz.Core.QuartzScheduler.Bind() in c:\Users\pedram.mobedi\Documents\GitHub\Postbag\Quartz.NET-2.2.4\src\Quartz\Core\QuartzScheduler.cs:line 375
   at Quartz.Core.QuartzScheduler.Initialize() in c:\Users\pedram.mobedi\Documents\GitHub\Postbag\Quartz.NET-2.2.4\src\Quartz\Core\QuartzScheduler.cs:line 352]

更新:主机文件

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost

127.0.0.1       localhost

更新 2:quartz.config

# Quartz Config

quartz.threadPool.type = Quartz.Simpl.SimpleThreadPool, Quartz
quartz.threadPool.threadCount = 10
#quartz.threadPool.threadPriority = Normal

# Settings for using Quartz as a windows service
quartz.scheduler.exporter.type = Quartz.Simpl.RemotingSchedulerExporter, Quartz
quartz.scheduler.exporter.port = 555
quartz.scheduler.exporter.bindName = Postbag
quartz.scheduler.exporter.channelType = tcp
quartz.scheduler.exporter.channelName = httpQuartz

# SQLite settings
quartz.jobStore.type = Quartz.Impl.AdoJobStore.JobStoreTX, Quartz
quartz.jobStore.misfireThreshold = 60000
quartz.jobStore.lockHandler.type = Quartz.Impl.AdoJobStore.UpdateLockRowSemaphore, Quartz
quartz.jobStore.useProperties = true
quartz.jobStore.dataSource = default
quartz.jobStore.tablePrefix = qrtz_
quartz.jobStore.driverDelegateType = Quartz.Impl.AdoJobStore.SQLiteDelegate, Quartz
quartz.dataSource.default.provider = SQLite-10
quartz.dataSource.default.connectionString = Data Source=.\jobs.db;Version=3
4

1 回答 1

0

这意味着您绑定了一个不存在的主机名。也许您已将其指向另一个位置。

1、你是否编辑过防火墙规则?可能是您阻止了您的程序,或者您已经阻止了对 127.0.0.1 的所有访问

2、你的主机名是域名吗?如果是,则表示该域不再指向这台机器。您应该在 HOST 文件中重新指向它:

按Win+R,输入以下命令:

notepad.exe %windir%\system32\drivers\etc\hosts

然后您可以检查该域是否已在该文件中。如果是并且以“#”开头,则删除“#”。如果没有,请输入以下内容:

127.0.0.1 [your domain name]

例如:

127.0.0.1 test.cn

3、如果主机名是“127.0.0.1”,应该不会发生。这可能是您的操作系统的问题

于 2016-02-25T10:27:00.677 回答