替代方法是创建服务代理的主密钥。
首先通过右键单击队列,并查看传输队列 检查服务代理队列或简单地使用此查询
SELECT *, casted_message_body = CASE message_type_name WHEN 'X'
THEN CAST(message_body AS NVARCHAR(MAX))
ELSE message_body
END
FROM [DATABASE_NAME].[sys].[transmission_queue]
如果您在这里找到任何数据,那么transmission_status栏会有这样做的原因。
如果经纪人没有发挥作用,我会用下面的查询
USE [master]
ALTER DATABASE [DATABASE_NAME] SET NEW_BROKER
然后启用与可信赖设置代理为ON
ALTER DATABASE DATABASE_NAME SET ENABLE_BROKER;
ALTER DATABASE DATABASE_NAME SET TRUSTWORTHY ON;
最后,删除主键上创建NEW_BROKER和创建新的主密钥并通过新密码加密:
ALTER AUTHORIZATION ON DATABASE::DATABASE_NAME TO [SA];
DROP MASTER KEY
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '79HGKJ67ghjgk^&*^fgj'
GO
通过单词可以是用户定义的字母数字和符号的混合。
如果上述任何步骤需要较长时间才能运行,那么我建议您停止查询并重新打开SQL管理器并重试。它应该工作得很好!
不存在远程服务绑定,所以这并不能解释它。 – Emmanuel 2010-12-09 11:00:23