- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我们有一个依赖中央 SQL 服务器的内部应用程序(胖客户端)。该应用程序是一个桌面应用程序,允许用户在“离线”模式下工作(例如 Outlook)。我需要完成的是一种准确判断 SQL 是否可用的方法。
我目前使用的是下面的方法-->
internal static void CheckSQLAvailability()
{
using (TcpClient tcpc = new TcpClient())
{
try
{
tcpc.Connect(Settings.Default.LiveSQLServer, Settings.Default.LiveSQLServerPort);
IsSQLAvailable = true;
}
catch
{
IsSQLAvailable = false;
}
}
}
由于以下原因,我对这种方法并不着迷。
我曾想过使用计时器,每 X(3??) 分钟调用一次,如果结果为阴性,则再次尝试以减少假阴性。
这里有一个类似的问题--> Detecting if SQL server is running但它在这些方面与我的不同:
那么到底有没有更优雅的方式来实现呢?这都是“网络内”检测。
附言按照以下答案的要求提供一些背景知识:我的应用程序是一个基本的 CRUD 应用程序,可以连接到我们的中央 SQL Server 或本地 SQLExpress 服务器。我有一个使它们保持同步的合并复制模块,并且 DAL 绑定(bind)到 User.Setting
值。我已经可以手动将它们从 Central 切换到 Local 并返回。我只想实现一种让它自动执行此操作的方法。我有一个运行良好的 NetworkChangeDetection
类,但很明显,它没有检测到远程 SQL。
最佳答案
考虑 Windows 集群监视器对 SQL Server 集群资源的作用:它实际上连接并运行虚拟查询 (SELECT @@version
)。这表明 SQL 正在运行,正在主动监听请求,并且能够运行请求并返回结果。对于集群监视器,对此查询的响应是服务器的“心跳”,如果它未能获得响应,无论出于何种原因,它都可能启动集群故障转移。
在我看来,仅连接到 TCP 有几个缺点:
不幸的是,没有办法从 SQL Server 本身获得通知说“嘿,我很活跃,你不发送一些请求吗?”。我不知道您的胖客户端(“胖应用程序”)的所有详细信息,但也许您应该研究一个不同的比喻:客户端所有都在本地工作,在 SQL Express 实例上,并且这些实例同步服务器可用时的数据。 Service Broker专为这种连接重试模式而设计,由于其异步松耦合编程 API,它会隐藏服务器可用性。
关于c# - 如何实现类似 Exchange 的内部 SQL Server 可用性监控,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3702457/
有没有办法使用 EWS Managed API 搜索 Exchange 以查找所有文件夹中的所有电子邮件。我正在使用 FindItems API 调用——但这似乎要求将搜索限制在单个文件夹中。
我已经看到这个问题被问了好几次,但到目前为止,答案都非常机械化和令人失望: EWS 与 EAS 有什么区别? 现在,大多数网站都给出以下内容:“一个是移动设备协议(protocol),另一个是 Web
我们将 Exchange 集成到我们的 CRM(日记和电子邮件)中;我们通过 SQL 2008 服务器中的 CRL 函数完成了这项工作,这些函数处理所有身份验证以及与 Exchange 2007 We
我想为交换服务器创建插件。 Exchange 服务器是否为此提供任何 SDK。如果有人知道,请告诉我。 最佳答案 此链接应为您提供可用内容的概览。 https://msdn.microsoft.com
我刚开始使用EWS(Exchange Web服务),并且正在寻找一个简单的示例,该示例演示如何发送带有附件的电子邮件。我搜索了一个示例,但找不到简单明了的示例。我找到了有关如何发送电子邮件但不发送带有
我在一个客户站点工作,并通过网络邮件连接到他们的 Exchange 2000 服务器。我正在运行 Outlook 2007,并通过 HTTP 连接到我的公司 Exchange 2007。 是否有任何方
从 Exchange 2007 开始,安装 Exchange 时不再安装 MAPI。在这些系统上 this install如果您想使用 MAPI,则除 Exchange 外还需要。 我的软件依赖于 E
交换 2010。 我已经阅读了有关 Exchange 中的通知订阅、邮箱事件和 EWS 的信息,据我所知,通知客户端应用程序必须始终与 EWS 保持连接。我对吗? 我的任务看起来很简单 - 当消息到达
我试图弄清楚节流政策如何影响 EWS。 对于 EWS,我们有以下值: EWSMaxSubscription:模拟用户完成的事件订阅数。 EWSMaxConcurrency:单个客户端可能执行的并发连接
我在 Exchange 2010 SP2 服务器上使用 EWS 我似乎找不到任何命令/文档来检索交换服务器中所有用户(邮箱/别名)的完整列表 这个问题已经问了好几次了,但我还没有看到任何答案 谢谢 最
我正在使用 CalendarItemType View 来检索日历项目。我唯一关心的项目是我创建的项目,我知道它们都是每周重复出现的项目。我能够获取每个单独的事件,并从其中任何一个中获取重复出现的主项
我从 Exchange 2007 服务器的地址开始: user@domain.exchangeserver.org 我尝试发送自动发现请求,如 MSDN 中所述. 我尝试使用 TechNet Whit
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 12 年前。 Improve thi
这是我所拥有的... 我有一个跟踪条形码类型标签的程序。我可以在数据库中选择一个项目并为它打印一个标签。我正在添加向我们的 Exchange 服务器 (2007 SP1) 上的特定收件箱发送电子邮件并
我的公司正在开发一个桌面和移动电子邮件客户端的项目,该客户端可以连接到不同的邮件服务器,用户或服务器管理员只需进行最少的配置。我们希望能够支持 Exchange,但经过一些研究后我意识到有许多问题需要
我正在尝试调用 GetUserAvailabilityRequest 来自不遵守夏令时的南非标准时间,但是,TimeZone 元素需要 StandardTime 和 DaylightTime 子元素,
我想在我的交换服务器上收到电子邮件时运行脚本。我真的没有关于如何实现这一点的好方向。我已经用 VB 编写了脚本并在 outlook 上对其进行了测试。我错误地认为您可以像在 Outlook 中一样从
我在使用 Exchange 2010 Web 服务 (EWS) 创建全天事件约会时遇到了麻烦。 根据现有要求,创建全天事件约会对象需要指定开始和结束时间(即 10/20/2011 12:00:00 A
是否有任何公共(public) Exchange 服务器(模拟器)可用于测试/试验我的 Exchange Web 服务实现? 最佳答案 我怀疑没有免费的东西。创建自己的 VM 会容易得多。您将需要具有
我正在尝试使用最新的 Exchange Web 服务 DLL,但是当我搜索我的硬盘时,我看到了许多版本的 Microsoft.Exchange.WebServices.DLL,最新的是版本 14.0.
我是一名优秀的程序员,十分优秀!