Windows服务在服务器上无效,但在DLL更新后本地工作
问题描述:
我在更新服务器中运行的Windows服务时遇到问题。我只改变了DLL,但是当我想启动它时,服务器刚刚崩溃,出现错误1053. Windows中的事件查看器显示更多错误:Windows服务在服务器上无效,但在DLL更新后本地工作
异常信息:System.TypeInitializationException。
我几乎可以肯定,我只是在我的代码中做了错误,但要确保我在本地运行此服务(在我自己的笔记本电脑上),并且没有任何问题服务启动正确。在服务器上,我有与本地(复制粘贴)相同的DLL。你有任何想法如何解决这个问题?我需要快速结束这台服务器。
private static void Main()
{
try
{
var dlls = new string[] { "Service.DataAccess", "SomeDll.Info", "SomeDll.Detail", "SomeDll.Some" };
new AssemblyLoader(dlls).Load();
XmlConfigurator.Configure();
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[] {new Service_SRV()};
ServiceBase.Run(ServicesToRun);
}
catch(Exception e)
{
RecordError(e);
throw;
}
}
我只是更改DLL名称,但有适当的没有类型的错误。最后,我想补充说,我读了这个主题:Error 1053: the service did not respond to the start or control request in a timely fashion
没有什么帮助,它仍然在本地计算机上工作,但不在服务器上。什么样的问题可能会使本地工作和服务器不工作?
答
检查您是否在app.config文件中提及了任何文件路径或代码中的任何硬编码文件路径。
如果是这样,您可能需要更新服务器计算机的路径。
答
您是否将新的DLL添加到GAC中? 否则,你的dll需要和你的控制台应用程序在同一个目录下。 也许在名为bin的子文件夹中。
另外,你是否为相同版本的框架编译?使用的框架是否存在于服务器上?
是的,它仍然是相同的框架和DLL在同一个文件夹 – Aht
@Att错误消息表明您的服务已加载,但需要很长时间才能启动。如果您更改了名称,是否有任何仍然引用旧名称的依赖关系?配置?配置部分/键?注册表项? – lobiZoli
有消息说,但服务器在3-5秒后崩溃并发送超时错误(30秒)。配置文件是好的相同的配置工作本地没有问题 – Aht