0

我的任务是在我的公司 Web 应用程序中编写一些功能(用 C# 和 ASP.NET 编写)。

Web 应用程序的一部分允许客户通过网站提出支持票。这些通过 WCF Web 服务发布到服务器。

该公司想要的是一种机制,当客户提出支持票时,技术人员会收到一个 Windows 窗体应用程序的通知,该应用程序将位于任务托盘中,并显示气球提示,说明有一张新票。

托管 Web 应用程序(和 WCF 服务)的服务器与技术人员的机器位于不同的域上,因此我相信这种机制将需要某种 REST 服务,该服务将消息发布到所有正在侦听的 Windows 窗体客户端。

我浏览了很多关于 REST 服务的文章,听 WCF ......没有太大进展!

我的问题是:

  • 什么会被认为是可接受的现代方法?
  • 我可以使用 Web 应用程序 (WCF) 中已经采用的技术吗?
  • 我从哪里开始?
4

2 回答 2

1

如果您已经实现了用于发布票证的 WCF 服务,那么我认为扩展该服务并添加一种列出票证的方法是一项巨大的努力。

对于性能,您可以有一个接受日期的重载,允许您在该日期之后获得所有票。- 这意味着您的第一个请求可以获得所有票,并且包含最后请求日期的未来请求将仅获得新票。

使用 Windows 窗体应用程序中的新方法使用服务并定期轮询它。然后在服务返回新票时弹出您的气球提示。

于 2013-02-26T11:16:57.820 回答
1

您可以创建一个 DuplexService。即指定技术人员将接收通知的CallbackContract。双工虽然有点不标准。

    [ServiceContract(Namespace=ServiceContractNamespaces.ServiceContractNamespace,
                 CallbackContract = typeof(ISupportTicketCallback))]
public interface ISupportTicketService
{
           [OperationContract]
           int CreateSupportTicket (SupportTicket supportTicket);
}
public interface ISupportTicketCallback
{
        [OperationContract]
        void SupportTicketCreated(int supportTicketId);
}

或者,您的 WCF 服务可以通过 MSMQ 将消息发布到技术人员的应用程序。

在任何一种情况下,通知都将是事件驱动的。无需投票。非常干净的解决方案:)

于 2013-02-28T06:29:27.770 回答