背景爲什麼當InstanceContextMode = Per Call時WCF服務不會自動關閉會話?
我在玩WCF實例上下文模式,以瞭解它們在不同場景下的功能。我有默認的服務設置爲PerCall。默認情況下,我的意思是當你創建一個WCF服務庫時,它創建了一堆默認代碼。這是我正在使用的代碼 - 非常非常簡單的服務。我可以從簡單的客戶端調用服務。但是,如果我獨自離開客戶端並且不按任何內容約10或15分鐘,然後我嘗試撥打另一個電話,則會收到一條消息,告訴我「如果服務中止通道,安全上下文令牌將無效由於不活動。「
以下是完整的消息:
這是由於我處理在客戶端代理的方式。我從不關閉它。我的代理只是一個公共類級別的變量,只要沒有錯誤,我就可以重用。
因此,這裏是我的問題:
爲什麼WCF服務創建一個會話呢?我認爲,因爲實例上下文模式設置爲PerCall,它不需要會話。如果確實需要一個會話,它會在每次通話後關閉會話。即使它們來自同一個代理。
要清楚:我不是故意使用任何特定於會話的功能。我剛剛創建了一個新的WCF服務庫,並將上下文模式設置爲PerCall,並保留所有默認操作等。這就像香草服務一樣。
你使用什麼綁定?您是否爲每次新呼叫重新初始化客戶端? – CodeCaster