[英]Listening to a WCF service from a Windows Forms Application
我的任务是将一些功能写入我的公司Web应用程序(用C#和ASP.NET编写)。
部分Web应用程序允许客户通过网站提出支持服务单。 这些通过WCF Web服务发布到服务器。
公司想要的是一种机制,当客户提出支持票时,技术人员会通过Windows窗体应用程序通知任务托盘并显示气球提示,说明有新票。
承载Web应用程序(和WCF服务)的服务器位于与技术人员的计算机不同的域上,因此我认为此机制将需要某种REST服务,该服务将消息发布到所有侦听的Windows窗体客户端。
我已经浏览了很多关于REST服务的文章,听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.