2012-01-09 65 views
0

有没有办法从SQL Server调用aspx页面?我听说过这个,但不知道如何打电话? 在我的情况下,我有一个SQL作业,我需要调用aspx来执行某些任务。如何从sql server调用aspx页面?

+1

页面你是什么意思“称之为”是什么意思?你究竟想要做什么? – 2012-01-09 21:03:16

+0

我有一个SQL作业,通过它我必须发送带有特定附件的邮件?通过调用aspx页面,我可以轻松地执行此任务。 – 2012-01-09 21:13:42

+0

如果你甚至不知道如何做到这一点,你怎么知道你可以轻松做到这一点?我将不得不与@TomTom的答案一起去。 – 2012-01-09 21:15:21

回答

1

您可以创建一个.NET程序集,执行http调用并将其加载到SQL Server中,以便从那里访问它。

请参阅this MSDN article关于如何在SQL中创建程序集,以及如何使用T-SQL 2从此类程序集调用.Net函数。

这样做的一个缺点是(据我所知)没有办法参数化URL调用(就像在配置文件中一样)。每次URL更改时,您都必须在SQL中重新部署程序集。

4

不是全部?

在我的情况我有一个SQL作业,我需要调用aspx来执行某些任务。

被滥用。 SQL Server是一个数据库。 SQL Server作业(假设你的意思是作业)并不是一个体面的调度系统的替代品。它不应该用于运行诸如邮件活动等。

重做您的系统以坚持使用SQL Server,因为它打算使用,而不是通过使其看起来像一个应用程序服务器,通过滥用每个可能的功能。

+0

我并不完全同意或不同意你的回答。没有足够的上下文来确定OP所寻找的应该委派给不同的系统,但我认为从SQL Server发送电子邮件具有有效的业务场景。 – Icarus 2012-01-09 21:26:33

+0

是的。有效的商业理由是由一个非专利人士设计的愚蠢。在那里,经常看到它。想要这样做吗?编写一个运行在Windows调度程序定期调用的服务器上的小程序。 SQL Server不是应用程序服务器。从来没有,永远不会,但一些开发商没有看到,即使用棒球棒反复击中头部。 – TomTom 2012-01-10 06:47:23

0

您可以从SQL Server中完成您需要的任务(发送带附件的电子邮件),无需将任何程序集加载到SQL Server中。

看到这个答案here.和sp_send_dbmail的完整文档here.

+0

谢谢艾卡洛斯,但我必须发送多个Excel/PDF附件和电子邮件,并且我没有任何权限在数据库服务器中生成新文件。 – 2012-01-09 21:27:21

0

有没有办法从SQL Server调用aspx页面?

是的,但请不要。它需要禁用本地SQL Server安全性,以及其他一些丑陋的东西。

反过来这样做好得多。让您的网页调用SQL Server以获取所需的数据。您甚至可以使用Service Broker通知进行设置,您不必使用轮询。

0

写一个小服务来处理上述任务。将整个作业从SQL Server移动到服务中,或者使用数据库表标记该服务需要执行的工作。

0

可以直接调用使用

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'