繁体   English   中英

从Windows窗体应用程序中侦听WCF服务

[英]Listening to a WCF service from a Windows Forms Application

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

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

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

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

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

我的问题是:

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

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

为了表现,您可以拥有一个接受日期的超载,允许您获得在该日期之后筹集的所有门票。 - 这意味着您的第一个请求可以获得所有票证,并且包含上次请求日期的未来请求将仅获得新票证。

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

您可以创建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将消息发布给技术人员的应用程序。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM