在sql server中使用exec master .. cmdshell语句的问题

时间:2012-10-19 21:02:02

标签: .net sql-server

我无法从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

我可以采取哪些措施来解决这个问题?

1 个答案:

答案 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通信。