如何从sql server调用aspx页面?
问题描述:
有没有办法从SQL Server调用aspx页面?我听说过这个,但不知道如何打电话? 在我的情况下,我有一个SQL作业,我需要调用aspx来执行某些任务。如何从sql server调用aspx页面?
答
您可以创建一个.NET程序集,执行http调用并将其加载到SQL Server中,以便从那里访问它。
请参阅this MSDN article关于如何在SQL中创建程序集,以及如何使用T-SQL 2从此类程序集调用.Net函数。
这样做的一个缺点是(据我所知)没有办法参数化URL调用(就像在配置文件中一样)。每次URL更改时,您都必须在SQL中重新部署程序集。
答
不是全部?
在我的情况我有一个SQL作业,我需要调用aspx来执行某些任务。
被滥用。 SQL Server是一个数据库。 SQL Server作业(假设你的意思是作业)并不是一个体面的调度系统的替代品。它不应该用于运行诸如邮件活动等。
重做您的系统以坚持使用SQL Server,因为它打算使用,而不是通过使其看起来像一个应用程序服务器,通过滥用每个可能的功能。
答
有没有办法从SQL Server调用aspx页面?
是的,但请不要。它需要禁用本地SQL Server安全性,以及其他一些丑陋的东西。
反过来这样做好得多。让您的网页调用SQL Server以获取所需的数据。您甚至可以使用Service Broker通知进行设置,您不必使用轮询。
答
写一个小服务来处理上述任务。将整个作业从SQL Server移动到服务中,或者使用数据库表标记该服务需要执行的工作。
答
可以直接调用使用
Declare @URL varchar(1000)
Declare @Object as Int;
set @URL='your page URL'
Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
Exec sp_OAMethod @Object, 'open', NULL, 'get',@URL,'false'
Exec sp_OAMethod @Object, 'send'
页面你是什么意思“称之为”是什么意思?你究竟想要做什么? – 2012-01-09 21:03:16
我有一个SQL作业,通过它我必须发送带有特定附件的邮件?通过调用aspx页面,我可以轻松地执行此任务。 – 2012-01-09 21:13:42
如果你甚至不知道如何做到这一点,你怎么知道你可以轻松做到这一点?我将不得不与@TomTom的答案一起去。 – 2012-01-09 21:15:21