在我的win应用程序中 - 如果无法访问数据库服务器,我想显示信息(或db图标)。但我不想等待30秒超时。用户可以在我的选项对话框中配置服务器,用户,pw。 那么,如果数据库连接有效,那么亚音速是否有办法快速检查?
答案 0 :(得分:2)
您可以创建一个简单的ping存储过程,然后使用SQL命令的低超时执行该过程,例如:
SubSonic.StoredProcedure sp = SPs.PingStoredProcedure();
sp.CommandTimeout = 2;
sp.Execute();
答案 1 :(得分:0)
您可以找到有关协议的一些信息,并使用TCP套接字简单地模拟它。所以这就像telneting到Web服务器并发出HTTP命令。但是,您可以执行适合您的数据库的命令。这样做可以避免驱动程序中内置的任何超时。或者,您可以使用TCP连接到IP:端口,并查看是否有人在监听。至于Subsonic,没有。
答案 2 :(得分:0)
您可以将连接超时设置为低 - see here for an exmaple,或者可以在后台线程上设置,并让用户知道它正在尝试中。
答案 3 :(得分:0)
在当前版本(521)中,您可以使用IsOnline()方法与存储库模式一起使用。它目前总是返回true(参见here)...但是一旦修复了,你就可以使用重载方法传递一个短暂超时的连接字符串。