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