0

我无法让 exe 从 sql server 中的 exec master cmdshell 语句工作。

当我双击它时,EXE 工作正常。但是,当我尝试在 SQL Server 中使用此命令运行它时,它不会执行。

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

我可以采取哪些步骤来解决此问题?

4

1 回答 1

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

于 2012-10-19T21:31:55.793 回答