2011-02-15 178 views
1

我有連接到WCF服務的Silverlight應用程序。WCF客戶端超時

如果我在應用程序的開始處打開開放連接,然後在客戶端調用某個方法之前說出10分鐘左右,它會超時。

我知道很容易在web.config中更改超時時間。

然而,我正在尋找它爲WCF服務保持活動,說肥皂客戶端關閉後5分鐘。 我雖然可能會在Silverlight中運行一個後臺線程,它會調用一個WCF方法,但它不會做任何事情,但這感覺相當黑客。

是否有更多的專業方法呢?

感謝

+0

第一:爲了我的理解,WCF使用HTTP而不是SOAP,這是WCF Services比XML Web Services更快的原因之一...... :) – 2011-02-15 10:08:42

回答

1

您可以更改InstanceContextMode到signleton,並開始在服務構造的服務。使用signleton模式意味着你的會話永不過期。

[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)] 

另一種解決方案是將InstanceContextMode更改爲PerSession,並將InactivityTimeout設置爲1小時。

<bindings> 
    <wsHttpBinding> 
     <binding name="WSHttpBinding" > 
     <reliableSession inactivityTimeout="01:00:00" enabled="true" /> 
     </binding> 
    </wsHttpBinding> 
    </bindings> 

更新(閱讀您的評論後):您還可以設置inactivityTimeout =「無限」。