我有一个执行 ftp 复制的 C# .Net 控制台应用程序从 cmd 命令提示符运行,但是当从 SQL 代理作业或 SQL 服务器管理工作室运行时,应用程序的 FTP 部分失败:
declare @cmd varchar(200)
select @cmd = 'c:\ftptest\test.exe';
exec master..xp_cmdshell @cmd ;
从命令提示符运行时,控制台应用程序会上传 FTP 文件,但在使用 SQL 路由时会引发异常:
System.Net.WebException: The remote server returned an error: (400) Bad Request.
at System.Net.FtpWebRequest.GetResponse()
这听起来像是权限问题,但同一用户在 SQL Server Management Studio 查询和命令提示符中运行控制台应用程序,并且两者都在同一台服务器上运行。