簡體   English   中英

WCF服務未讀取隊列中的消息

[英]WCF Service Not Reading Messages in Queue

我有一個從消息隊列讀取的WCF服務。 我注意到在我們的最新部署中,隊列中有一條尚未讀取的消息。 WCF服務已啟動並正在運行,並且正在正確地建立與隊列的連接(否則我會收到並出錯)。

我們最近對代碼進行了一些更改,我們想知道是否可能與之相關。 對於我們來說,服務將運行但消息未讀似乎很奇怪。 如果隊列中有格式錯誤的消息,我至少希望WCF引發某種錯誤。

我查看了消息的屬性,並說消息的移動為零,所以我認為它不會發送到重試子隊列。 它只是坐在那里,服務不會讀取它。

WCF是否會忽略隊列中的消息? WCF如何處理格式錯誤的消息?

抱歉,如果沒有足夠的信息繼續進行。 在這一點上,我只是想了解導致郵件無法處理的原因。

這種情況似乎太奇怪了。 WCF根本不做任何事情是沒有道理的。

我最終決定只是嘗試重新啟動服務器上的MSMQ服務。 完成此操作后,我的服務立即會收到消息,然后一切都會重新開始。

我不知道這是否與Windows Update或其他服務器更改有關。 我很高興這很容易解決-這將是我將來嘗試的第一件事。

我們在WCF和MSMQ中遇到過幾種相同的問題。 一旦應用程序池長時間閑置,由於某種原因,WAS偵聽器將停止工作。 因此,WCF服務不會拾取隊列中的消息。

為了解決此問題,我們在不具有IsOneWay = true的情況下公開了同一服務上的另一個合同(因為此操作將不會與隊列進行交互)。 然后創建一個Windows服務,該服務在指定的時間間隔后對WCF服務URL進行ping操作,以確保WAS進程始終處於活動狀態,並且只要隊列中有消息,WCF就會提取消息。 本文詳細解釋了如何解決MSMQ WCF服務停用問題

另外,請確保為IIS上的應用程序啟用了http&net.msmq協議。

另外一個不錯的文章,使用Net.Msmq結合與MSMQ WCF實現一步步引導安裝MSMQ使用Net.Msmq結合WCF

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM