簡體   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