2011-02-03 53 views
0

我讀過的單向操作不應該在合同sessionful如果使用SessionMode.PerSession實例使用,但它不是一個糟糕的設計使用單向操作與sessionful合同時SessionMode是無論是每個電話還是每個單身人士。是採用被認爲是不好的設計sessionful合同單向操作?

爲什麼單向操作不應該與每個會話使用,而他們可以與每個呼叫和每單可用於任何想法?

謝謝

回答

1

如果你使用你不知道,如果它造成的服務異常單向操作。未處理的服務異常總是會使通道出現故障。如果InstanceContextMode設置爲PerSession其故障會話通道和其配置的服務實例。由於單向性質客戶端將不知道這件事,並從同一個客戶端代理將異常結束(通道出現故障......)來服務一個電話。客戶只能在代理上致電Abort,但他不會知道這一點。 IMO Single實例化具有會話啓用的行爲相當類似,只是它不會處置服務實例。

這不會與 PerCall實例發生,因爲每個調用實例使用通道堆棧進行單個請求處理。 正如評論指出,將在PerCall發生實例化以及由於斷陷會話通道的。

+1

「PerCall實例化時不會發生這種情況,因爲每個調用實例都使用通道堆棧進行單個請求處理」我假設使用PerCall模式時,任何未處理的異常也會使一個sesionful通道出錯?但由於同一個sesionful通道用於處理來自此的所有請求客戶端,不會從同一個客戶端接下來的呼叫也會結束一個異常(因爲通道故障,因此不能再使用)?如果是這種情況,那麼我認爲使用PerCall而不是PerSesion有任何好處。在這兩種情況下,客戶端都不會知道發生異常,直到再次調用服務爲止。 – user437291 2011-02-03 20:07:13

相關問題