我有最奇怪的问题。桌面应用程序和服务应用程序之间的不同行为
在我的C#解决方案中,我有一个桌面测试应用程序和一个服务应用程序。在两个应用程序的开始时,我会调用完全相同的方法,并且行为完全不同。 我的桌面应用程序工作得很好,读取一个COM端口,处理该信息,然后将该数据插入到我的数据库中。 服务应用程序,读取COM端口正常,但是然后处理的数据是完全不同的,之后,它抛出一个SQLException,因为它试图转换错误的数据(Specimeicaly日期时间'01/01/0001')
我需要这个应用程序是一个服务,我有桌面应用程序只是为了测试它。我一直在研究服务一段时间,之前我从来没有见过这种行为。
应用程序和服务工作如此不同以致使用EXACT相同的库调用相同的函数的可能性如何?
下面是代码:
服务:
protected override void OnStart() { csGPS.startGPSData(); Thread hiloEscuchar = new Thread(delegate() { csListener listener = new csListener(); listener.listenAutoCommand(); }); hiloEscuchar.Start(); Thread hiloEnviar = new Thread(delegate() { csSender.buscarComandos(); }); hiloEnviar.Start(); Thread hiloEnviarPosiciones = new Thread(delegate() { csSender.enviarPosiciones(); }); hiloEnviarPosiciones.Start(); }
桌面应用程序:
private void btnComenzar_Click(object sender, EventArgs e) { csGPS.startGPSData(); Thread hiloEscuchar = new Thread(delegate() { csListener listener = new csListener(); listener.listenAutoCommand(); }); hiloEscuchar.Start(); Thread hiloEnviar = new Thread(delegate() { csSender.buscarComandos(); }); hiloEnviar.Start(); Thread hiloEnviarPosiciones = new Thread(delegate() { csSender.enviarPosiciones(); }); hiloEnviarPosiciones.Start(); lblEstado.Text = "STARTED"; btnComenzar.Enabled = false; }
我希望你们能帮助我。
谢谢。
这意味着'处理数据是完全不同的'。你不是说代码是一样的吗?你能标记你注意到第一个区别的代码吗? –
您向我们展示的代码并不真正相关。在您的方法中的某处,正在对作为服务运行时无效的权限或上下文进行假设。你将不得不附加到服务,并逐步了解发生了什么。您也可以尝试在您的用户帐户下运行该服务作为故障排除步骤,以查看它是否正常工作。 –