SQL奇怪超时问题
好吧,所以我正在尝试创建一个调用扩展过程的过程。我收到以下错误:SQL奇怪超时问题
Msg 121, Level 20, State 0, Line 0
A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The semaphore timeout period has expired.)
即使是最简单的测试,我得到这个错误:
CREATE PROCEDURE Test
AS
BEGIN
EXEC xp_cmdshell 'dir *.exe'
END
但是,如果我只是在自己独立运行xp_cmdshell 'dir *.exe'
它的工作原理。
这是在群集SQL 2005服务器上运行的。任何帮助表示赞赏。
当您创建过程或执行它时,您是否收到错误消息?
如果您在执行它时遇到问题,则可能会出现某些权限问题。由于在更高版本的sql server调用xp_cmdshell
被严格锁定,并且默认情况下未在表面区域配置中启用,所以我可以看到此潜力。
你打电话给SP怎么样?如果您使用动态SQL,那么知道它使用调用者的权限执行,而不是SP创建者。
您是否需要在主服务器前缀为master.dbo.xp_cmdshell
的主服务器?
您是否在SP创建或SP执行中尝试过EXECUTE AS
?
另外,根据我的经验,传输级错误有时不是由于服务器的问题引起的,而是客户机在连接对象超过服务器丢弃时的缓存时出现问题(从而使连接对象失效) 。鉴于你大概是在最初连接的短时间内运行它,它听起来不是这是确切的问题,但你是否会有某种代理/防火墙/网络过滤器问题,因为丢包检测包中的某些关键字?我知道这是一个长镜头,但我不得不问...
我不确定原因是否是你所说的,但我能找到的最接近的东西。它会有时运行,并使其他人失败。 – 2011-06-27 16:08:04
如果您只用“SELECT 1”创建PROC,该怎么办? – gbn 2010-05-15 11:18:05
创建PROC是不成问题的。我字面上有数千人。 – 2010-05-15 19:33:19
我会再问一次......这个问题说:“创造错误”。评论说“创建PROC的不是问题”。那么,你只会在这个存储过程的CREATE上发生错误? – gbn 2010-05-16 08:23:44