我有一个用winforms(.net)开发的应用程序,它使用的是Sql Server数据库 我的客户端将在本地(Intranet)使用该应用程序,我的一些客户端将使用来自远程位置的相同应用程序(区域中的winform应用程序和远在其他区域的数据库服务器)。
现在问题当他们从远程位置使用我的应用程序时,有时我会得到命令超时。
现在我已经在运行正常的代码中增加了commandtimeout。但是我想知道在这种情况下增加命令超时是一种最佳做法吗?
命令超时还包括在网络通道中读/写数据也没有? (至少这是我在msdn上发现的)所以如果数据库位于远端位置,增加命令和连接超时是否明智?
答案 0 :(得分:0)
听起来你真的需要在你的应用程序中使用另一个层,所以客户端与数据/业务逻辑层对话,然后代表客户端从SQL获取数据。
这样,您的客户端只需要处理网络延迟而不是SQL命令超时。您还不再需要将SQL服务器公开给直接来自Internet上的计算机的登录,它可以配置为仅允许来自数据层的登录,该登录与SQL框位于同一物理位置。
然后,您可以在不涉及SQL的情况下调查延迟问题。