我們有一個ServiceEndpoint,它支持一個回傳Stream的方法。從該方法回傳的Stream物件是一個記憶體中的Pipe類,它允許我們異步地運行一些額外的代碼來從另一個服務器讀取并回傳資料。
問題是其中一些操作需要一段時間,如果WCF沒有在WebHttpBinding.SendTimeout設定的時間跨度內完成操作,它似乎會在服務器端中止操作。
我們知道我們可以增加時間,但是我們正在尋找一些關于如何獲得超時通知的資訊。我們唯一能看到的是,Pipe實體呼叫了它的Close方法,但不清楚是否有辦法知道它為什么發生。
我們可能希望在服務器上以不同的方式清理資源,這取決于是客戶端斷開連接,還是WCF中止了操作。
uj5u.com熱心網友回復:
如果我沒有理解錯的話,你想列印出你想閱讀的期刊部分。
也許你可以創建你自己的跟蹤監聽器,并將其寫入Eventlog,如果有必要,可以給監聽器添加過濾器以獲得你想要的資訊。
uj5u.com熱心網友回復:
你可以簡單地測量直到管道被關閉的時間。如果它接近WebHttpBinding.SendTimeout,你就可以認為,該操作已經超時了。也許這不是最好的方法,但很簡單。
如果你能控制客戶端的代碼,你可以捕獲超時例外,并通過呼叫另一個方法來通知你的服務。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/316160.html
標籤:
