【问题标题】:Web Service checking that DB is availableWeb 服务检查数据库是否可用
【发布时间】:2017-11-16 14:08:04
【问题描述】:

我需要创建一个 ASP.NET Web 服务,它只返回一个信息,告知数据库在使用时是可用还是关闭。

所以我想知道我是否可以设置一个定期在Web服务方法内部执行的任务来检查与数据库的连接并通过URL返回结果。

【问题讨论】:

  • 有可能,但 Web 服务并不是真正合适的解决方案。为什么不是运行控制台应用程序的计划任务?
  • 为什么需要网络服务?数据库是否在不同的服务器中,并且您想从外部通过 Web 应用程序检查连接?
  • 你可以,但你不应该
  • @Platus,您需要告诉我们更多关于您打算使用该网络服务的内容

标签: c# asp.net web-services


【解决方案1】:

不,你不能。好吧,你可以,但你真的应该。 Web 服务是按需。如果它被调用,它确实有效。如果它没有被调用,它就没有运行。

您可能一直在考虑 windows 服务。 那个是一直在运行的东西,可以在后台做一些事情。

(Windows 服务可能有一个额外的 Web 前端来查看它的数据。或者任何其他方式来可视化它的数据点,例如另一个数据库。)

【讨论】:

  • 我见过有人这样做,所以这是可能的。但非常值得怀疑。
  • @Liam 我见过有人这样做。这是等待发生或在您观看时发生的失败。你退缩。就像看着有人敲钉子一样。
  • 完全同意这只是第一句话不,你不能我认为这不是严格正确的。
【解决方案2】:

当您标记 c# 和 asp 以便您使用 Sql 服务器数据库时, 此查询为您提供 sql server 实例上存在的数据库:

  select * from master.dbo.sysdatabases

result 包含名称和一些额外信息,name 为您提供数据库名称,mode 列有一个 int 值表示数据库处于创建模式或已创建模式,status 列包含一个 int 值(2 的幂)

如果您想查看数据库是否处于脱机状态,您可以查看状态值,如果它是 512,则您的数据库处于脱机状态,对于 1024,它处于只读模式

对于您的服务,您可以使用 web api、web 方法或 wcf,这取决于您


如果您使用 hangfire、quartz 或任何其他调度程序,您可以在服务器上设置后台作业来检查您的数据库状态

“通过 URL 返回结果”我无法理解,但如果您想通知用户有关数据库的信息,您可以在后台作业中使用推送通知

【讨论】:

  • 虽然正确,但这与实际问题无关。
  • 我在完成之前发送了答案 :)) 抱歉
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-19
  • 1970-01-01
相关资源
最近更新 更多