0

SQLServerのexecmastercmdshellステートメントから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

これを修正するにはどのような手順を実行できますか?

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

SQL ServerがGoogleと通信できるように、ファイアウォールで正しいポート(587)を開いていることを確認してください。

于 2012-10-19T21:31:55.793 に答える