[英]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.