SQL Server可以发送Web请求吗?

前端之家收集整理的这篇文章主要介绍了SQL Server可以发送Web请求吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在本地网络上有一个sql Server数据库和一个Intranet Web应用程序. Intranet Web应用程序创建记录并将其发送到数据库.我有一个Internet Web应用程序,我想发送新的记录,以使用本地网络上的sql Server数据库.

我不能因为各种原因更改/修改Intranet Web应用程序,所以我唯一的选择是在本地sql Server上创建一个触发器,该触发器将使用某种http post请求或url调用向Internet Web应用程序发送新记录.

INTERNET Web应用程序设置有一个RESTful API,可以通过表单发送到可公开访问的URL(例如http://www.example.com/records/new)的新记录.

有没有人知道在sql Server中是否可以实现通过url发送数据(url中的xml,json,plain变量)?

感谢任何想法!

解决方法

这是可能的,但在现实世界中,比你想象的天真的方法要复杂得多.主要地,触发器等待HTTP请求是不可接受的:

>对于一个,您的应用程序将爬行到尖叫停止,因为触发器将阻止资源(主要是锁)等待远程WWW服务的响应.
>第二,更微妙但更糟糕的是在回滚存在时的正确性问题.如果发送给HTTP请求的事务回滚,则无法“撤消”HTTP请求.

解决方案是通过队列将触发器与HTTP请求分离.触发器将请求排入本地队列并提交,而单独的处理将对这些请求进行排队并发出HTTP请求.这解决了上述两个问题.您可以使用普通表进行队列(参见Using Tables as Queues),也可以使用Service Broker,两者都可以正常工作.

现在关于如何出现这个请求并实际放置HTTP调用,我强烈建议使用一个专用的进程(即为此目的专用的应用程序).虽然可以使用sqlCLR,但这是一个非常糟糕的选择. sql Server资源(特别是workers)在等待Internet响应时浪费了很多宝贵资源.

原文链接:https://www.f2er.com/mssql/82423.html

猜你在找的MsSQL相关文章