2017-07-31 120 views
1

我的应用程序在客户端PC上粉碎。在更改SQL连接字符串并设置文件后,我在我的第二台笔记本电脑上安装了另一个SQL Server 2014。而在我的开发人员机器中,“第一个”工作起来很简单。但是当我改变连接设置,就像我为我的笔记本电脑做的那样,把应用程序带到客户端机器就会破碎。c#Windows窗体应用程序崩溃在客户端机器

我在所有计算机上使用相同的SQL Server 2014。

,并显示如下消息:

enter image description here

我试图重新安装新的.NET框架,但没有太多的工作。 我该怎么办她?

+0

你能分享你的代码导致问题吗? –

+0

先生,我认为这不是从代码。因为当我在我的SQL连接代码中更改服务器的名称时,该应用程序正在另一台PC上工作。 –

+0

也许你的SQL服务器不允许来自所有IP地址的连接。 – MetaColon

回答

1

在Program.cs,App.cs或App.xaml.cs中,您可以注册一个异常处理程序,它捕获所有未处理的异常,即使是那些导致崩溃的异常。程序启动后立即向AppDomain.CurrentDomain.UnhandledException注册函数,并在该处理函数中将第二个参数中的ExceptionObject转储到文本文件。这至少会给你提供进一步的信息。

除此之外,由于我们没有足够的信息,因此我们无法确定即使是该故障的远程原因。

+0

谢谢你,我会尽力做到这一点。 –

0

我完全同意在代码中需要错误处理!不过,以下可能会有所帮助。

  1. 我强烈建议您的应用程序中没有固定的连接字符串。这使得很难移植到客户机。而是在您的设置中包含连接字符串。

  2. 在客户端机器上打开记事本并保存一个带有.udl扩展名的新文件(您需要选择保存对话框下拉菜单中的所有文件),例如testconn.udl。现在从资源管理器中双击新的.udl文件。数据链接属性窗口应该打开。在提供程序选项卡上,选择SQL Server Native Client。在“连接”选项卡上,选择客户端的SQL Server的名称并根据需要填写其他选项。现在点击测试连接。希望它会说测试成功。现在单击确定,然后在记事本中重新打开.udl文件。它将创建一个oledb字符串。对于SQLClient,您不需要“Provider =”部分,也可以忽略初始文件名和ServerSPN;然而,剩下的部分将为您提供客户端需要的连接字符串值。

  3. 假设你已经完成了1.和2.你现在可以编辑你的应用程序的配置文件来包含正确的连接字符串。

唯一可能出错的是如果2.中的测试连接不起作用。可能有这么多原因,我不会在这里再次猜测。请尝试一下,并报告任何问题。如果测试连接不成功,至少你可以确定问题不是你的代码!

+0

谢谢你,兄弟,我会做,并通知你。 –

相关问题