我有一个项目,在该项目中,购买产品时必须向客户发送电子邮件。我一直在与其他开发人员进行交谈,我们得出的结论是,完成此项目需要完成3个主要步骤:
我知道如何通过WinForms应用发送电子邮件,因此步骤3可以。 我阅读了有关Service Broker的信息,并在数据库中启用了它。另外,我创建了触发器,以便在插入或更新数据时通过Service Broker发送消息。我遵循了this tutorial,并提出了以下触发条件:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER SendServiceBroker
ON dbo.Sales
AFTER INSERT,UPDATE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @ch UNIQUEIDENTIFIER
DECLARE @msg NVARCHAR(MAX) ;
BEGIN DIALOG CONVERSATION @ch
FROM SERVICE [InitiatorService]
TO SERVICE 'TargetService'
ON CONTRACT [http://ssb.csharp.at/HelloWorldContract]
WITH ENCRYPTION = OFF ;
SET @msg = '<HelloWorldRequest>
Gabriela
</HelloWorldRequest>' ;
SEND ON CONVERSATION @ch
MESSAGE TYPE [http://ssb.csharp.at/RequestMessage]
(@msg) ;
END
GO
此外,我在Microsoft的GitHub页面中找到了Windows Service project的代码。我在计算机上安装了该服务,然后在Sales表中插入了一些数据,但是没有任何反应。
我曾考虑过直接在触发器上发送电子邮件(使用sp_send_dbmail
),但是我没有这样做的必要权限。
我认为要使它正常工作在整个过程中都缺少一些东西,但是我不知道要使其正常工作我需要做什么。