我在服务器中运行的更新Windows服务时遇到问题。我只更改DLL,但是当我想启动服务器时,崩溃时出现错误1053.在Windows中的事件查看器显示更多错误:
异常信息: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
没有任何帮助,它仍然在本地计算机上工作,但不在服务器上。什么样的问题可能使本地工作和服务器上没有?
答案 0 :(得分:1)
检查您是否在app.config文件或代码中的任何硬编码文件路径中提到了任何文件路径。
如果是这种情况,您可能需要更新服务器计算机的路径。
答案 1 :(得分:1)
您是否已将新DLL添加到GAC? 否则,您的dll需要与控制台应用程序位于同一目录中。 也许在一个名为bin的子文件夹中。
另外,您是否为相同版本的框架编译?使用的框架是否存在于服务器上?