我无法从sql server中的exec master cmdshell语句获取exe工作。
双击时,EXE正常工作。但是当我尝试在SQL服务器中使用此命令运行它时,它不会执行。
EXEC master..xp_cmdshell 'Path\Program.exe'
程序本身非常简单 - 它应该使用内部DLL发送电子邮件警报。如果遇到错误,则应将该错误写入当前目录中的文件。 (最后,我希望它将其设置为在将记录插入特定表时通过触发器运行)。
当我使用上述语句运行程序时,程序不会打印出错误消息(如下所示)或发送电子邮件。如何判断它是否正在执行?遇到错误?会发生什么事?当我通过双击path \ program.exe运行它时程序本身正常工作。
Imports System.IO
Module Module1
Sub Main()
Try
EmailSenderDLL.EmailSender.send(15, "Alert Text.")
Catch e As Exception
File.WriteAllText(Directory.GetCurrentDirectory() & "\" & Now.Year & Now.Month & Now.Day & Now.Millisecond, e.Message & vbNewLine & e.StackTrace)
End Try
End Sub
End Module
我可以采取哪些措施来解决这个问题?
答案 0 :(得分:1)
是的,您可以将数据库邮件与Google帐户一起使用:https://blogs.msdn.com/b/suhde/archive/2009/07/12/how-to-configure-sql-server-database-mail-to-send-email-using-your-windows-live-mail-account-or-your-gmail-account.aspx?Redirected=true
确保在防火墙中打开正确的端口(587)以允许SQL Server与Google通信。