因此,我们在Windows Mobile 5的Socket Mobile Pocket PC(SoMo650)上运行了一个用C#编写的内部程序。在过去几周内,该设备在连接到我们的SQL服务器数据库时非常不稳定。大多数早晨它工作正常,但大约上午10点(给予或采取半小时)它只是完全停止连接;只在最后的卫星上工作。该程序24/7在其他设备上正常工作,只有PPC有问题。第二天早上它再次开始工作,直到上午10点。这是我收到的错误消息(我手动输入,很抱歉打字错误):
ProgramZ.exe
SqlException
at System.Data.SqlClient.SqlConnection.OnError()
at System.Data.SqlClient.SqlInternalConnection.OnError()
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
at System.Data.SqlClient.Tdsparser.Connect()
at System.Data.SqlClient.SqlInternalConnection.OpenAndLogin()
at System.Data.SqlClient.SqlInternalConnection..ctor()
at System.Data.SqlClient.SqlConnection.Open()
at System.Data.Common.DbDataAdapter.QuietOpen()
at System.Data.Common.DbDataAdapter.FillInternal()
at System.Data.Common.DbDataAdapter.Fill()
at System.Data.Common.DbDataAdapter.Fill()
at ProgramZ.ProgramZTableAdapters.qryWarehousesTableAdapter.GetWarehouse()
at ProgramZ.frmCollection.frmCollection_Load()
at System.Windows.Forms.Form.OnLoad()
at System.Windows.Forms.Form._SetVisibleNotify()
at System.Windows.Forms.Form.set_Visible()
at System.Windows.Forms.Application.Run()
at ProgramZ.Program.Main()
任何想法是怎么回事?软件包sql.ppc.wce5.armv4i安装在设备上(需要该软件包才能连接到SQL)。我们尝试重新启动服务器,重新安装软件,在PPC上恢复出厂设置,但仍然没有运气。以下是设备本身的更多信息:
Manufacture: Socket Mobile, Inc
Product ID: SoMo650
CPU: ARM920T PXA270
Windows Mobile 5.0 with the Messaging and Security Feature Pack
OS 5.1.478 (Build 15706.3.5.2)
编辑一些请求的信息:调试时,错误消息是" SqlException未处理"。就是这样。当我点击详细信息时,我会收到以下信息:
[System.Data.SqlCLient.SqlException] {"SqlException"}
Class 20
Errors {System.Data.SqlClient.SqlErrorCollection}
InnerException null
LineNumber 0
Message "SqlException"
Number 6
Procedure "ConnectionOpen(Connect())."
Server "ServerName"
Source ".Net SqlClient Data Provider"
StackTrace "at System.Data.SqlClient.SqlConnection.OnError()"...
State 0
程序设置为典型的ADO连接。连接字符串是这样的:
Data Source=ServerName;Initial Catalog=ProgramZDatabase;Persist Security Info=True;User ID=user_write;Password=password
这是在抛出错误时程序代码中发生的事情(这是来自Visual Studio创建的数据集):
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)]
public virtual ProgramZ.qryWarehousesDataTable GetWarehouse() {
this.Adapter.SelectCommand = this.CommandCollection[0];
ProgramZ.qryWarehousesDataTable dataTable = new ProgramZ.qryWarehousesDataTable();
this.Adapter.Fill(dataTable); // <-- this is where the error is thrown
return dataTable;
}
设备通过WiFi连接到我们的SqlServer 2000.服务器上还运行了大约5个数据库,其中大约3个正在定期使用(如每天多次)。其中一个为ERP系统提供动力,在任何给定时间都有10个人使用。服务器的流量相当大,但似乎处理得很好(在任务管理器中没有发现任何问题)。 Pocket PC是唯一使用&#34; ProgramZDatabase&#34;的设备。我不知道在这些错误期间发生的任何备份或报告。
我认为连接超时可能值得研究。我从没搞过编辑超时;有什么建议吗?