Sql server SP with xp_cmdshell在MessageQueue中出错,但在SSMS中成功执行

Sql server SP with xp_cmdshell在MessageQueue中出错,但在SSMS中成功执行,sql-server,sql-server-2008,message-queue,database-administration,service-broker,Sql Server,Sql Server 2008,Message Queue,Database Administration,Service Broker,我有一个SP,它在其中调用xp\u cmdshell。此SP正在MessageQueue中使用 SQL server和代理服务是使用域服务帐户配置的,该服务帐户还具有sysadmin服务器角色下的登录名 调用MessageQueue时,SP返回以下异常: 无法检索xp_cmdshell代理帐户信息或该信息无效。验证“xp\u cmdshell\u代理\u帐户”凭据是否存在并包含有效信息 但是,当我在SSSMS中执行SP时,在作为系统管理员的服务帐户登录下,它成功执行 我甚至创建了xp\u cmd

我有一个SP,它在其中调用xp\u cmdshell。此SP正在MessageQueue中使用

SQL server和代理服务是使用域服务帐户配置的,该服务帐户还具有sysadmin服务器角色下的登录名

调用MessageQueue时,SP返回以下异常: 无法检索xp_cmdshell代理帐户信息或该信息无效。验证“xp\u cmdshell\u代理\u帐户”凭据是否存在并包含有效信息

但是,当我在SSSMS中执行SP时,在作为系统管理员的服务帐户登录下,它成功执行

我甚至创建了xp\u cmdshell\u proxy\u帐户凭据,但消息队列从未停止给出此错误

这是队列的外观:

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) 
服务帐户也配置为本地服务器中的本地管理员

数据库所有者是Sa

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


请告诉我这里缺少什么。

我在数据库中设置了trustry=ON,消息队列执行SP时没有任何问题


谢谢Remus Rusanu的提示

非常感谢你,雷姆斯!!在数据库中设置Trusty=ON,所有这些都像一个符咒一样工作!!非常感谢!!