我正在开发一个C#winforms桌面应用程序。该应用程序有两个过程。用户只需要调用第一个进程,第一个进程将调用第二个进程。第一个进程使所有Web服务调用获取数据并存储在本地数据库中。第二个应用程序是基于UI的,并显示本地数据库中的数据。我正在使用SQL Server 2008 R2 Express作为本地数据库。
当用户点击桌面图标或从开始菜单调用时,此模型可以正常工作。但我的要求是在Windows启动时启动应用程序。所以我把快捷方式放在Windows启动的第一个应用程序中。在这种情况下,我看到在第二个进程上进行的数据库调用的SQL异常,表示用户sa
的登录失败。
启动第二个过程的代码如下所示,从第一个过程的Form Load
调用string MAIN_APP = "second.exe";
System.Diagnostics.Process.Start(MAIN_APP);
GetDataFromServer();
我没有任何线索为什么它从桌面调用时起作用而在启动时失败。我尝试在应用程序清单中将用户上下文设置为管理员,但这并未解决问题。
关于可能出错的任何指示?
第二个申请的代码如下:
try
{
string sqlStr = "select remember_pass, imgfile from user_profile where userid = '" + txtUserId.Text + "'";
DataSet ds = new DataSet();
SqlConnection con = new SqlConnection(mainConnectionString)
SqlDataAdapter da = new SqlDataAdapter(str, con);
da.Fill(ds);
}
catch(Exception ex)
{
logger.log("Caught Exception. Reason {0}", ex.Message);
}
注意:我纠正了问题陈述中的错误。
答案 0 :(得分:0)
我认为您的服务在SQL Server准备好处理连接之前就开始了。
将您的服务设置为“自动(延迟)”,以便它将在其他服务之后启动