带有xp_cmdshell的SP在MessageQueue中给出错误,但在Management Studio中成功执行

我有一个SP,其中调用xp_cmdshell 。 这个SP正在MessageQueue中使用。

SQL服务器和代理程序服务是使用域服务帐户configuration的,并且此服务帐户也具有sysadmin服务器angular色下的login名。

当MessageQueue被调用时,SP返回以下exception:

xp_cmdshell代理帐户信息无法检索或无效。 validation“## xp_cmdshell_proxy_account ##”凭证是否存在并且包含有效信息。

但是当我在SSSMS中执行SP时,在服务帐户login(这是一个sysadmin)下,它成功执行。

我甚至创build了##xp_cmdshell_proxy_account##凭证,但消息队列永远不会停止提供此错误。

这是队列的样子:

 CREATE QUEUE [dbo].[TestxmCmdshellQueue] WITH STATUS = ON , RETENTION = OFF , ACTIVATION ( STATUS = ON , PROCEDURE_NAME = [dbo].[SpWithxp_cmdshell_Init] , MAX_QUEUE_READERS = 5 , EXECUTE AS N'dbo' ), POISON_MESSAGE_HANDLING (STATUS = OFF) 

服务帐户也在本地服务器中configuration为本地pipe理员。

数据库所有者是“Sa”

我在Windows Server 2008 R2企业计算机上运行SQL Server 2008 R2 Sp2。

我在数据库中创build了TRUSTWORTHY = ON,并且消息队列没有任何问题地执行SP。

谢谢 !!