如何从sql server 2008存储过程中ping一个url

问题描述:

嗨,大家好,我想通过http从sql server 2008存储过程ping通url。如何从sql server 2008存储过程中ping一个url

什么是最好的和最简单的方法来做到这一点?

更新:为了使其更清楚,我只想从存储过程调用aspx页面来通知我的aspx页面数据已被修改,并且aspx需要刷新缓存。

我知道我可以通过SQL缓存依赖项来做到这一点,但我想使用推式而不是拉类型的通知。

您可以编写一个接受主机/ IP地址字符串的CLR函数,并返回ping所用的秒数,如果无法ping,则返回-1。

+0

看起来像这是最好的选择:-) thnx - +1 – Raj 2010-06-29 14:00:17

+0

一定要也接受答案,如果它解决了您的问题 – 2010-06-29 16:19:12

如果已经启用xp_cmdshell的,那么你可以使用:

EXEC sys.xp_cmdshell 'PING 127.0.0.1' 

确保你理解使xp_cmdshell的,虽然对安全的影响。由于某种原因,它默认关闭。

+0

安全设置不允许这个不幸的是:-(反正+1 ...任何其他方式? – Raj 2010-06-29 13:57:15

+1

CLR可能是您的下一个最佳选择 – 2010-06-29 13:58:06

+0

如果您有权访问xp_cmdshell,这是最直接的答案。 – Barry 2010-06-29 16:22:41

SQL Cache dependency doesuse a push notification via SQL Service Broker。您只需要将您的应用程序设置为subscribe to notifications。那绝对是我的第一选择。

如果由于某种原因不适合也许this approach使用对象自动化会为你工作? 编辑其实我只是阅读文章下的评论,原作者建议不要在SQL2005中使用它,而是在需要请求URL时使用CLR。